我应该在这里做什么?



=& 参考

参考任务操作员在PHP, =& 什么意思是“=&”和“&="操作员在PHP? 什么意思是“&=”和“=&”操作员在PHP?

















PHP 中的奇怪打印行为?



= 任命运营商

三种不同的平等


如何区分PHP平等(==双等)和身份(===三等)比较操作员?PHP!=和 ==操作员3个不同的平等类型和(严格)较大的/较小的比较在PHP


=== 比较运营商






比特币运营商


上一篇: 逻辑运营商












[ ] Arrays (自 PHP 5.4 以来简短的合成)


PHP 短标签是否可用?


二角形字符范围




# One-line shell 风格评论


NullSafe Operator 通话(自 PHP 8.0 以来)

PHP 中有“零安全操作员”吗?



当前回答

运营商类型

instanceof 是用来确定一个 PHP 变量是否是一个特定的类别的即时对象。

<?php
class mclass { }
class sclass { }
$a = new mclass;
var_dump($a instanceof mclass);
var_dump($a instanceof sclass);

上面的例子将产生:

bool(true)
bool(false)

原因: 上例 $a 是 mclass 的对象,所以只使用 mclass 数据而不是 sclass 的例子。

继承的例子

<?php 
class pclass { } 
class childclass extends pclass { } 
$a = new childclass; 
var_dump($a instanceof childclass); 
var_dump($a instanceof pclass);

上面的例子将产生:

bool(true)
bool(true)

与克隆的例子

<?php 
class cloneable { } 
$a = new cloneable;
$b = clone $a; 
var_dump($a instanceof cloneable); 
var_dump($b instanceof cloneable);

上面的例子将产生:

bool(true)
bool(true)

其他回答

运营商类型

instanceof 是用来确定一个 PHP 变量是否是一个特定的类别的即时对象。

<?php
class mclass { }
class sclass { }
$a = new mclass;
var_dump($a instanceof mclass);
var_dump($a instanceof sclass);

上面的例子将产生:

bool(true)
bool(false)

原因: 上例 $a 是 mclass 的对象,所以只使用 mclass 数据而不是 sclass 的例子。

继承的例子

<?php 
class pclass { } 
class childclass extends pclass { } 
$a = new childclass; 
var_dump($a instanceof childclass); 
var_dump($a instanceof pclass);

上面的例子将产生:

bool(true)
bool(true)

与克隆的例子

<?php 
class cloneable { } 
$a = new cloneable;
$b = clone $a; 
var_dump($a instanceof cloneable); 
var_dump($b instanceof cloneable);

上面的例子将产生:

bool(true)
bool(true)

Null Coalesce 操作器 “??” (在 PHP 7 中添加)

不是一个运营商最受欢迎的名称,但PHP 7带来了相当方便的零冷却,所以我认为我会分享一个例子。

在PHP 5中,我们已经有一个特纳操作器,测试一个值,然后返回第二个元素,如果它返回真实,第三个元素,如果它没有:

echo $count ? $count : 10; // outputs 10

在PHP 7中,我们还获得了操作员,而不是指示极端的混乱,这就是我通常会使用两个问题标志相结合的方式,而不是允许我们连接一行值。

// $a is not set
$b = 16;

echo $a ?? 2; // outputs 2
echo $a ?? $b ?? 7; // outputs 16

这个结构是有用的,以优先考虑一个或多个值来自用户输入或现有配置,并安全地落后于一个特定的默认设置,如果该配置缺乏。

双子座合成

當使用兩個字符在定義原生 PHP 字符串功能時,.. 行動表達一個包含的字符範圍. a-e 等於 abcde。

echo trim('adobe', 'a..e');

印刷:

o

原始 PHP 功能,允许双点范围合成

<=> 航天运营商

在 PHP 7 中添加

太空运营商 <=> 是 PHP 7 中添加的最新比较运营商。 它是一种与平等运营商相同的优先事项的非协作二进制运营商(==,!=, ===,!==)。 该运营商允许左手和右手运营商之间的简单三路比较。

运营商以一个完整的表达结果:

0 如果两位操作员均等 低于 0 如果左手操作员低于右手操作员 大于 0 如果左手操作员高于右手操作员

吉。

1 <=> 1; // 0
1 <=> 2; // -1
2 <=> 1; // 1

使用这个运营商的好实用应用将是比较类型的呼叫回归,预计将基于两个值之间的三路比较,返回零、负或积极的整体。

在PHP 7之前,你会写...

$arr = [4,2,1,3];

usort($arr, function ($a, $b) {
    if ($a < $b) {
        return -1;
    } elseif ($a > $b) {
        return 1;
    } else {
        return 0;
    }
});

因为 PHP 7 你可以写...

$arr = [4,2,1,3];

usort($arr, function ($a, $b) {
    return $a <=> $b;
    // return $b <=> $a; // for reversing order
});

#[] 自 PHP 8 以来的属性

您可以写 #[attribute_name] 从 PHP 8. 这是一个属性在 PHP (也 Rust 和 C#). 其他语言可能使用名称如笔记(Java)或装饰(Python,JavaScript)为类似的功能. 在 PHP 8 之前, # [任何东西] 将是一个评论,直到线的结束(因为 # 开始一个评论在 PHP 。 所以,如果一个属性是线上的最后一件事,它将被忽略在句子中

RFC Syntax RFC(原始 RFC 已更改) 文档