我应该在这里做什么?
=& 参考
参考任务操作员在PHP, =& 什么意思是“=&”和“&="操作员在PHP? 什么意思是“&=”和“=&”操作员在PHP?
PHP 中的奇怪打印行为?
= 任命运营商
三种不同的平等
如何区分PHP平等(==双等)和身份(===三等)比较操作员?PHP!=和 ==操作员3个不同的平等类型和(严格)较大的/较小的比较在PHP
=== 比较运营商
比特币运营商
上一篇: 逻辑运营商
[ ] Arrays (自 PHP 5.4 以来简短的合成)
PHP 短标签是否可用?
二角形字符范围
# One-line shell 风格评论
NullSafe Operator 通话(自 PHP 8.0 以来)
PHP 中有“零安全操作员”吗?
__DIR__: 文件的目录. 如果在其中使用,则包含的文件的目录将返回. 这相当于 dirname(__FILE__). 该目录名称没有追踪漏洞,除非它是根目录。
__CLASS__: 类名. (添加到 PHP 4.3.0) 由于 PHP 5 这个常态返回类名,因为它被宣言(案例敏感)。 在 PHP 4 它的值总是低下。 类名包含它被宣言的名称空间(例如 Foo\Bar)。 请注意,因为 PHP 5.4 __CLASS__ 也在特征中工作. 当用于特征方法时, __CLASS__ 是使用特征的类名。
__NAMESPACE__:当前名称空间的名称(案例敏感)。此连续定义为编译时间(在 PHP 5.3.0 中添加)。
NullSafe 运营商
在 PHP 8.0 中添加
它是 NullSafe 运营商,如果您尝试引用函数或从零中获取值,则返回零。
$objDrive = null;
$drive = $objDrive?->func?->getDriver()?->value; //return null
$drive = $objDrive->func->getDriver()->value; // Error: Trying to get property 'func' of non-object
Nullsafe 运营商不使用序列密钥:
$drive['admin']?->getDriver()?->value //Warning: Trying to access array offset on value of type null
$drive = [];
$drive['admin']?->getAddress()?->value //Warning: Undefined array key "admin"
增加 / 减少运营商
+ 增强运营商
排斥运营商
Example Name Effect
---------------------------------------------------------------------
++$a Pre-increment Increments $a by one, then returns $a.
$a++ Post-increment Returns $a, then increments $a by one.
--$a Pre-decrement Decrements $a by one, then returns $a.
$a-- Post-decrement Returns $a, then decrements $a by one.
它可以在变量之前或之后进行。
例如:
$apples = 10;
for ($i = 0; $i < 10; ++$i) {
echo 'I have ' . $apples-- . " apples. I just ate one.\n";
}
活例子
在上述情况下 ++$i 使用,因为它更快。
预增略略快一点,因为它真的增加了变量,然后“返回”结果,后增略创造了一个特殊变量,复制了第一个变量的值,只有在第一个变量被使用后,它将其值取代为第二个。
但是,你必须使用 $ 苹果 - 因为首先,你想显示目前的苹果数量,然后你想从它中提取一个。
$i = "a";
while ($i < "c") {
echo $i++;
}
一旦 z 到达 aa 是下一个,等等。
请注意,字符变量可以增加,但不能减少,即使如此,只有平坦的 ASCII 字符(a-z 和 A-Z)得到支持。
Stack Overflow 文章:
理解增加
零加热运营商(??)
此操作员已在 PHP 7.0 中添加到常见情况下,需要与 isset() 一起使用终端操作员,如果存在并非 NULL,则将其第一个操作员返回;否则将其第二个操作员返回。
<?php
// Fetches the value of $_GET['user'] and returns 'nobody'
// if it does not exist.
$username = $_GET['user'] ?? 'nobody';
// This is equivalent to:
$username = isset($_GET['user']) ? $_GET['user'] : 'nobody';
// Coalescing can be chained: this will return the first
// defined value out of $_GET['user'], $_POST['user'], and
// 'nobody'.
$username = $_GET['user'] ?? $_POST['user'] ?? 'nobody';
?>
运营商类型
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)