参考指南:这个符号在PHP中是什么意思?(PHP语法)

发布时间 2023-10-12 20:51:31作者: 小满独家

内容来自 DOC https://q.houxu6.top/?s=参考指南:这个符号在PHP中是什么意思?(PHP语法)

这是什么?

这是一个关于PHP语法的常见问题集合。这也是一个社区维基,所以每个人都被邀请参与维护这个列表。

为什么这样做?

以前,找到关于运算符和其他语法标记的问题很困难。主要的想法是在这里提供指向Stack Overflow上现有问题的链接,这样我们更容易引用它们,而不是从PHP手册复制内容。

注意:自2013年1月起,Stack Overflow支持特殊字符。(https://meta.stackexchange.com/questions/160100/a-new-search-engine-for-stack-exchange)只需将搜索词用引号包围,例如[php] "==" vs "==="

我应该在这里做什么?

如果你因为问了这样一个问题而被其他人指出,请找到下面的特定语法。指向PHP手册的链接以及附带的问题可能会回答你的问题。如果是这样,我们鼓励你投票赞成答案。这个列表并不是为了替代他人提供的帮助。

列表

如果你的特定标记没有列在下面,你可能会在解析器标记列表中找到它。


& 位运算符引用


=& 引用


&= 位运算符


&& 逻辑运算符


!! 逻辑运算符


@ 错误控制运算符


?: 三元运算符


双问号

?? 空合并运算符 (自PHP 7起)


问号后跟类型声明

?string
?int
?array
?bool
?float 可空类型声明 (自PHP 7.1起)


?-> 问号后跟对象运算符是NullSafe Operator (自PHP 8.0起)


: 控制结构的替代语法, 三元运算符, 返回类型声明


\ 命名空间


=> 数组


^ 位运算符


>> 位运算符


<< 位运算符


<<< heredoc或nowdoc


= 赋值运算符


== 比较运算符


=== 比较运算符


!== 比较运算符


<=> 比较运算符 (自 PHP 7.0)


| 位运算符


|| 逻辑运算符


~ 位运算符


+ 算术运算符, 数组运算符


+=-= 赋值运算符


++-- 递增/递减运算符


.= 赋值运算符


, 函数参数

, 变量声明


$$ 变量变量

[执行操作符](http://php.net/manual/en/language.operators.execution.php)

* [反引号``被称为什么?](https://stackoverflow.com/questions/6002296)

---

`<?=` [短标签](http://php.net/manual/en/ini.core.php#ini.short-open-tag)

* [这个符号在PHP中<?=是什么意思?](https://stackoverflow.com/questions/1963901)
* [PHP中的'<?='是什么意思?](https://stackoverflow.com/questions/2020445)
* [在PHP中,<?=是什么意思?](https://stackoverflow.com/questions/1959256/what-does-mean)

---

`[]` [数组](http://secure.php.net/manual/en/language.types.array.php) (PHP 5.4以来的简写语法)

* [PHP数组...空括号的含义是什么?](https://stackoverflow.com/q/20709055/2758197)
* [[]的意义是什么?](https://stackoverflow.com/questions/6933345)
* [PHP array_push()与myArray[]的区别是什么?](https://stackoverflow.com/questions/2431629)
* [从PHP数组中读取时,[]是什么意思?](https://stackoverflow.com/questions/3908576)
* [使用字面量`$var = []`创建空数组的简写方式是什么?](https://stackoverflow.com/questions/4271874)

---

`<?` [开始和结束标签](http://secure.php.net/manual/en/language.basic-syntax.php)

* [PHP短标签是否可接受使用?](https://stackoverflow.com/questions/200640)

---

`..` 双点字符范围

* [允许使用双点字符范围语法的原生PHP函数有哪些?](https://stackoverflow.com/q/72865138/2943403)

---

`...` [参数解包](http://php.net/manual/en/functions.arguments.php#functions.variable-arg-list) (自PHP 5.6起)

---

`**` [指数运算](http://secure.php.net/manual/en/migration56.new-features.php#migration56.new-features.exponentiation) (自PHP 5.6起)

---

`#` [单行shell风格注释](http://php.net/manual/en/language.basic-syntax.comments.php)

* [PHP中可以使用哈希作为注释吗?](https://stackoverflow.com/questions/9093609/can-i-use-hashes-for-comments-in-php)

---

`#[]` [属性](https://stackoverflow.com/a/71641821/6660678) (自PHP 8起)

---

---

**[增加/减少操作符](http://php.net/manual/en/language.operators.increment.php)**

`++` 增加操作符

`--` 减少操作符

示例 名称 效果

++$a 前置增加 将 $a 增加 1,然后返回 $a。
$a++ 后置增加 返回 $a,然后增加 $a 1。
--$a 前置减少 将 $a 减少 1,然后返回 $a。
$a-- 后置减少 返回 $a,然后减少 $a 1。


这些操作符可以放在变量前面或后面。

如果放在变量前面,增加/减少操作会先作用于变量,然后返回结果。如果放在变量后面,首先返回变量,然后进行增加/减少操作。

例如:

$apples = 10;
for ($i = 0; $i < 10; ++$i) {
echo '我还有 ' . $apples-- . " 个苹果。我刚吃了一个。\n";
}


**[在线示例](http://codepad.org/5ZD3j0xb)**

在上面的例子中,使用了 `++$i`,因为它更快。`$i++` 也会产生相同的结果。

前置增加稍微快一些,因为它真正地增加了变量的值,然后再返回结果。后置增加会创建一个特殊变量,将第一个变量的值复制到那里,然后在使用第一个变量之后,用第二个变量的值替换它。

然而,你必须使用 `$apples--`,因为你首先想要显示当前的苹果数量,然后再减去一个。

你也可以在 PHP 中增加字母:

$i = "a";
while ($i < "c") {
echo $i++;
}


一旦达到 `z`,下一个就是 `aa`,以此类推。

> 注意,字符变量可以被增加,但不能减少,即使这样,也只有简单的 ASCII 字符(a-z 和 A-Z)被支持。
> 
> 
> 

---

**Stack Overflow 帖子:**

* **[理解增加操作符](https://stackoverflow.com/questions/1968371/understanding-incrementing)**