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

这篇具有很好参考价值的文章主要介绍了十几个冷门还好用的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去执行文章来源地址https://www.toymoban.com/news/detail-759988.html

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

到了这里,关于十几个冷门还好用的PHP写法(冷门的让人震惊)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【PHP面试题80】Redis消息发布与订阅功能怎么用的?

    本文已收录于PHP全栈系列专栏:PHP面试专区。做全网最全最有营养的PHP面试大全。 计划将全覆盖PHP开发领域所有的面试题, 对标资深工程师/架构师序列 ,欢迎大家提前关注锁定。 Redis消息发布与订阅是Redis提供的一种消息传递机制,它允许一个或多个生产者通过发布消息的

    2024年02月16日
    浏览(38)
  • php脚本自动跳转地址的代码几种写法

    PHP实现URL地址跳转的几种方法代码 实例:一行URL跳转代码 PHP 2. PHP 如保存为aaa.php,可以实现aaa.php?url=www.baidu.com跳转到百度的效果 当用户访问zhuce.php时,判断一个cookie是否存在,如果存在就跳转到register.php,如果不存在则创建cookie然后跳转到zhuce.html PHP Php本身没有一个完全意

    2024年02月03日
    浏览(24)
  • 6.php开发-个人博客项目&Tp框架&路由访问&安全写法&历史漏洞

    目录 知识点 php框架——TP URL访问 Index.php-放在控制器目录下 ​编辑 Test.php--要继承一下 带参数的—————— 加入数据库代码 --不过滤 --自己写过滤 --手册(官方)的过滤 用TP框架找漏洞: 如何判断网站是thinkphp? 黑盒: 白盒: php总结 ​ 1-基于TP框架入门安装搭建使用

    2024年01月25日
    浏览(40)
  • 一个 println 竟然比 volatile 还好使?

    前两天一个小伙伴突然找我求助,说准备换个坑,最近在系统复习多线程知识,但遇到了一个刷新认知的问题…… 小伙伴:Effective JAVA 里的并发章节里,有一段关于可见性的描述。下面这段代码会出现死循环,这个我能理解,JMM 内存模型嘛,JMM 不保证 stopRequested 的修改能被

    2024年02月08日
    浏览(20)
  • JavaScript!震惊你,只需一行代码!

    前后端面试题库 (面试必备) 推荐:★★★★★ 地址:前端面试题库  web前端面试题库 VS java后端面试题库大全 前些年的段子里,总有一些主考官的思想格局打不开,抛出这样的问题:让我在10秒钟内记住你。于是就有了,被打耳光的,被亲的,被扒衣服的,摔手机的··

    2023年04月11日
    浏览(26)
  • 麻了,这让人绝望的大事务提交

    继上次的if else优化也有段时间了,最近小猫又又又着道了,接手的那个项目又遇到了坑爹的地方,经常性的报死锁异常,经常性的主从延迟......通过报错信息按图索骥,发现代码是这样的。 这是一段商品发布的逻辑,我们可以看到参数校验、查询、最终的insert以及update全部

    2024年02月03日
    浏览(28)
  • 震惊 C语言竟然还有这些函数

    作者简介:დ旧言~,目前大一,现在学习Java,c,Python等 座右铭:松树千年终是朽,槿花一日自为荣。 望小伙伴们点赞👍收藏✨加关注哟💕💕 C语言初阶中我们了解到函数,而我们最初认识的函数都是我们自己实现的。在C语言中为了使代码更加的便捷,属于有自己的函数

    2024年02月16日
    浏览(23)
  • 震惊!CSS 也能实现碰撞检测?

    本文,我们将一起学习,使用纯 CSS,实现如下所示的动画效果: 上面的动画效果,非常有意思,核心有两点: 小球随机做 X、Y 方向的直线运动,并且能够实现碰撞到边界的时候,实现反弹效果 小球在碰撞边界的瞬间,颜色发生随机的变化 嗯?很有意思的效果。 看上去,我

    2024年02月12日
    浏览(18)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包