這是關於 PHP 語法時不時出現的問題的集合。這也是一個社區 Wiki,因此邀請每個人參與維護此清單。
過去很難找到有關運算子和其他語法標記的問題。 ¹
主要思想是提供 Stack Overflow 上現有問題的鏈接,這樣我們就可以更輕鬆地引用它們,而不是複製 PHP 手冊中的內容。
注意:自 2013 年 1 月起,Stack Overflow 開始支援特殊字元。只要用引號將搜尋字詞括起來,例如[php]「==」與「===」
如果您因為問了這樣的問題而被某人指向這裡,請尋找下面的特定語法。 PHP 手冊的連結頁面以及連結的問題可能會回答您的問題。如果是這樣,我們鼓勵您對答案進行投票。此清單不能取代其他人提供的幫助。
如果您的特定令牌未在下面列出,您可能會在解析器令牌清單中找到它。
&
位元運算子或參考
=&
參考文獻
&=
位元運算子
&&
邏輯運算子
%
算術運算子
!!
邏輯運算子
@
錯誤控制運算子
?:
三元運算子
雙問號
??
空合併運算子(自 PHP 7 起)
問號後面跟著類型宣告
?string
?int
?array
?bool
?float
可空型別宣告(自 PHP 7.1 起)
?->
問號後面跟著物件運算子是 NullSafe 運算子(自 PHP 8.0 起)
:
控制結構、三元運算子、傳回型別宣告的替代語法
::
範圍解析運算子
命名空間
->
類別和物件
=>
陣列
^
位元運算子
>>
位元運算子
<<
位元運算子
<<<
Heredoc 或 Nowdoc
=
賦值運算子
==
比較運算子
===
比較運算子
!==
比較運算子
!=
比較運算子
<>
比較運算子
=
和
和
[]
陣列(自 PHP 5.4 起的片語法)
$var = []
空數組<?
開始與結束標籤
..
雙點字元範圍
...
參數解包(自 PHP 5.6 起)
**
求冪(自 PHP 5.6 起)
# 一行 shell 式註解
#[]
屬性(自 PHP 8 起)
P粉2983052662023-10-11 11:48:43
什麼是一點?位代表 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。
P粉3453027532023-10-11 00:19:04
遞增/遞減運算子< /p>
增量運算子
--
自減運算子
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
,依此類推。
堆疊溢位貼文:
#