首页 > 编程语言 >十几个冷门还好用的PHP写法(冷门的让人震惊)

十几个冷门还好用的PHP写法(冷门的让人震惊)

时间:2023-12-14 22:17:51浏览次数:33  
标签:php 15 冷门 echo 运算符 obj PHP 写法

环境:PHP8.1

1. else foreach/else for

//012
if(false) {

} else for($i = 0; $i < 3; $i++) {
    echo $i;
}

//012
if(false) {

} else foreach([0, 1, 2] as $v) {
    echo $v;
}

2. 匿名函数简写

$func = function($val) {
    return $val;
};
//等同于
$func = fn($val) => $val;

$func(1);

3. 匿名函数叠加

$func = fn() => fn() => 1;
echo $func()();

4. 消失的分号

//不会报错
<?php
echo 1
?>

5. 空数组合并运算符

//使用??=,如果数组的元素有值且不为null,则赋值失败
$arr = [];
$arr['k1'] ??= 'v1';
print_r($arr);
$arr['k1'] ??= 'v2';
print_r($arr);

6. 利用内置类,创建空对象

$obj = new stdClass();
$obj->i = 123;
echo $obj->i; //1

7. 利用?->安全导航运算符,避免调用不存在的方法或属性时报错

$obj = null;
var_dump($obj?->attr); //null
var_dump($obj?->method1()); //null

8. 单独调用某个命名空间下的方法

namespace Namespace1;
function func1() {
    echo 'func1';
}
function func2() {
    echo 'func2';
}

namespace Namespace2;
use function Namespace1\func1;
func1(); //1
func2(); //Fatal error: Uncaught Error: Call to undefined function Namespace2\func2() in t1.php:13 Stack trace: #0 {main} thrown in t1.php on line 13

9. 移位运算符 <</>>

//15的二进制是1111,向右移动两位,就是0011
echo 15 >> 2; //3
//15的二进制是1111,向左移动两位,就是111100
echo 15 << 2; //60

10. 位运算符 |/&

//15的二进制是1111,2的二进制是0010
//逐个对比二进制位,都为1则为1,否则为0
echo 15 & 2; //0010->2
//逐个对比二进制位,有一个为1则为1,全部为0,则为0
echo 15 | 2;//1111->15

11. 异或运算符 ^

//异或运算符^,可以理解为二进制逐个对比二进制位,相同为0,不同为1
$a = 5; //0b0101
$b = 3; //0b0011
echo $a ^ $b; // 结果为 6(二进制表示为 0110)

12. 通过异或赋值运算符,在两个变量中,互相交换对方的值

$a = 'a';
$b = 'b';
$a ^= $b;
$b ^= $a;
$a ^= $b;
echo $a, $b; //ba

13. 添加蛇棒头,用bash shell方式执行PHP脚本

touch test.php
chmod +x test.php
...
./test.php

告诉告诉操作系统执行此脚本时运行的解释器,使用的是PHP解释器

#!/usr/bin/env php
<?php
echo 1;

告诉告诉操作系统执行此脚本时用这个目录下的PHP去执行

#!/usr/local/php/bin/php
<?php
echo 1;

标签:php,15,冷门,echo,运算符,obj,PHP,写法
From: https://www.cnblogs.com/phpphp/p/17902120.html

相关文章

  • quickjs C功能扩展的四种写法
    一、前言 茴香豆的“茴”字有多少种写法?这篇博客不是为了炫技,是JS就是这么多种情况。比如C语言,就只能通过函数调用,没有类的概念。比如Java,就只能通过类、对象的方式。不能单独创建函数。哪怕main函数也要包装成一个class。而JS,即可以提供函数,也可以提供类。在ES5之前,JS......
  • PHP复用CURL简单文件上传的2种方法
    方法一:curlFile客户端$filePath='head.txt';//创建CURLFile对象$file=newCURLFile($filePath);//创建cURL资源$ch=curl_init();//设置cURL选项curl_setopt($ch,CURLOPT_URL,$your_upload_url);//替换为实际的上传接口URL......
  • 手动安装LAMP——在 CentOS 7 上安装 PHP、Apache 和 MariaDB(替代 MySQL)
    在CentOS7上安装PHP、Apache和MariaDB(替代MySQL)的过程如下:1.更新系统:sudoyumupdate2.安装Apache:sudoyuminstallhttpd3.启动Apache服务并设置开机自启:sudosystemctlstarthttpdsudosystemctlenablehttpd4.安装MariaDB:sudoyuminstallmariadb-server......
  • php tp框架 自定义日志
    调用方法$file_log=['order_id'=>123,];(newLogs('log'))->infos('日志文案',$file_log);[2023-12-1415:24:13][INFO][log]{"msg":"日志文案","params":{"order_id":123},"file......
  • 2023最新中级难度ThinkPHP面试题,包含答案。刷题必备!记录一下。
    好记性不如烂笔头内容来自面试宝典-中级难度ThinkPHP面试题合集问:请描述一下ThinkPHP的核心概念MVC模式的优点和局限性。优点:分层架构:MVC模式将业务逻辑、用户界面和数据访问三个层次分开,提高了代码的可读性和可维护性。可重用性强:各个模块之间的耦合度低,可以方便......
  • 2023最新高级难度ThinkPHP面试题,包含答案。刷题必备!记录一下。
    好记性不如烂笔头内容来自面试宝典-高级难度ThinkPHP面试题合集问:请深入解释ThinkPHP框架的核心架构和运行机制。ThinkPHP的核心架构主要由三大部分组成:核心层(Core)、行为层(Behavior)和服务层(Service)。核心层是框架的基础,提供了基本的HTTP请求处理、路由分发、模板引擎等功......
  • 2023最新初级难度ThinkPHP面试题,包含答案。刷题必备!记录一下。
    好记性不如烂笔头内容来自面试宝典-初级难度ThinkPHP面试题合集问:请简单介绍一下ThinkPHP框架。ThinkPHP是一款由国内开发者开发的开源PHP框架,主要特点如下:易于上手,非常适合中小型项目;提供了一系列的模板标签库,简化视图层开发;对ORM和MVC设计模式的支持使得业......
  • php深化学习(二)
    为了提高一定效率,我需要一些工具的工具比如composer,vscode,phpstudy,宝塔控制面板composer:是php专门管理包工具。安装看https://docs.phpcomposer.com/00-intro.html教程就行。composer不光是管理工具,还能自动构建加载器,是定制个人框架的必备的。vscode:一个开源的自己自定义的......
  • laravel php 50W数据导出excel 分批分页导出
    文章目录需求问题解决需求导出50W左右的数据导excel表问题使用phpexcel等插件,碰到数据量大很慢,可能能花半个小时以上数据量大查询慢内存不足执行超时解决使用原生csv导出设置脚本超时和内存,进行加大内存,不限制超时时间进行分页查询publicfunctionbp_out(R......
  • php 16个魔术方法
    16个方法的简单介绍__construct(),类的构造函数__destruct(),类的析构函数__call(),在对象中调用一个不可访问方法时调用__callStatic(),用静态方式中调用一个不可访问方法时调用__get(),获得一个类的成员变量时调用__set(),设置一个类的成员变量时调用__isset(),当对不可访......