这是一个关于 PHP 语法的问题集合。这也是社区 Wiki,因此邀请每个人参与维护此列表。
过去很难找到关于运算符和其他语法标记的问题.¹
主要思想是链接到 Stack Overflow 上的现有问题,因此我们更容易引用它们,而不是复制 PHP 手册中的内容。
¹ 注意:自 2013 年 1 月起,Stack Overflow 确实支持特殊字符 。只需用引号括起搜索词,例如[php] "==" vs "==="
如果您因为提出这样的问题而被某人指向此处,请在下面找到具体的语法。 PHP 手册的链接页面以及链接的问题可能会回答您的问题。如果是这样,我们鼓励您提出答案。此列表并不代替其他人提供的帮助。
如果您的特定令牌未在下面列出,您可能会在 “ 解析器令牌列表” 中找到它。
=& 参考文献
&= 按位运算符
&& 逻辑运算符
% 算术运算符
!! 逻辑运算符
@ 错误控制操作符
?: 三元运算符
?? Null Coalesce 运算符 (自 PHP 7 起)
:: 范围解析运算符
\ 命名空间
-> 类和对象
=> 数组
^ 按位运算符
>> 按位运算符
<< 按位运算符
<<< Heredoc 或 Nowdoc
= 分配运营商
== 比较运算符
=== 比较运算符
!== 比较运算符
!= 比较运算符
<> 比较运算符
<=> 比较运算符 (自 PHP 7.0)
| 按位运算符
|| 逻辑运算符
~ 按位运算符
+=和-= 赋值运算符
++和-- 递增 / 递减运算符
.= 分配运营商
. 字符串运算符
, 功能参数
, 变量声明
$$ 变量变量
` 执行运营商
<?= 短开标签
[] 数组 (PHP 5.4 以来的短语法)
$var = []空数组 <? 打开和关闭标签
... 参数解压缩 (自 PHP 5.6 起)
** Exponentiation (自 PHP 5.6 起)
++增量运算符
--递减运算符
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++会有相同的结果。
预增量稍微快一点,因为它确实增加了变量,然后 '返回' 结果。后增量创建一个特殊变量,在那里复制第一个变量的值,并且只有在使用第一个变量之后,才用第二个变量替换它的值。
但是,您必须使用$apples-- ,因为首先要显示当前的苹果数, 然后您要从中减去一个苹果。
您还可以在 PHP 中增加字母:
$i = "a";
while ($i < "c") {
echo $i++;
}一旦达到z接下来是aa ,依此类推。
请注意,字符变量可以递增但不递减,即使只支持纯 ASCII 字符(az 和 AZ)。
Stack Overflow 帖子:
有点什么?位是 1 或 0 的表示。基本上为 OFF(0)和 ON(1)
什么是字节?一个字节由 8 位组成,一个字节的最高值为 255,这意味着每个位都被置位。我们将看看为什么字节的最大值是 255。
-------------------------------------------
| 1 Byte ( 8 bits ) |
-------------------------------------------
|Place Value | 128| 64| 32| 16| 8| 4| 2| 1|
-------------------------------------------这个 1 字节的表示
1 + 2 + 4 + 8 + 16 + 32 + 64 + 128 = 255(1 字节)
& $a = 9;
$b = 10;
echo $a & $b;这会输出数字 8. 为什么?好吧,让我们看一下使用我们的表格示例。
-------------------------------------------
| 1 Byte ( 8 bits ) |
-------------------------------------------
|Place Value | 128| 64| 32| 16| 8| 4| 2| 1|
-------------------------------------------
| $a | 0| 0| 0| 0| 1| 0| 0| 1|
-------------------------------------------
| $b | 0| 0| 0| 0| 1| 0| 1| 0|
-------------------------------------------
| & | 0| 0| 0| 0| 1| 0| 0| 0|
-------------------------------------------所以你可以从表中看到他们共享的唯一位是 8 位。
第二个例子
$a = 36;
$b = 103;
echo $a & $b; // This would output the number 36.
$a = 00100100
$b = 01100111两个共享位是 32 和 4,当它们加在一起时返回 36。
| $a = 9;
$b = 10;
echo $a | $b;这将输出数字 11. 为什么?
-------------------------------------------
| 1 Byte ( 8 bits ) |
-------------------------------------------
|Place Value | 128| 64| 32| 16| 8| 4| 2| 1|
-------------------------------------------
| $a | 0| 0| 0| 0| 1| 0| 0| 1|
-------------------------------------------
| $b | 0| 0| 0| 0| 1| 0| 1| 0|
-------------------------------------------
| | | 0| 0| 0| 0| 1| 0| 1| 1|
-------------------------------------------您会注意到我们在 8 列,2 列和 1 列中设置了 3 位。添加它们:8 + 2 + 1 = 11。
_()的下划线字符 “_” 是gettext()函数的别名。