先簡單說結論: 一個等號是賦值;二個等號是等於;三個等號是相同。
一個等號 =
$a = 1;
$b = true;
$s = 'hello';
一個等號,是賦值運算子 (assignment operator),也就是將數字/字串/布林等,塞進變數裡面。
二個等號 ==
if ($a == 1) {
}
if ($b == true) {
}
if ($s == 'hello') {
}
二個等號,是比較運算子 (Comparison Operators),也就是比對二個等號左邊跟右邊是否相同,它的英文定義是 equal (等於)。若二邊的型別不同,例如左邊的變數是字串,右邊是數字型號,PHP 會將它轉換型別再比較。所以 ==,是經過型別轉換計算後的等於,不是百分百完全相同。
三個等號 ===
if ($a === 1) {
}
if ($b === true) {
}
if ($s === 'hello') {
}
三個等號,也是比較運算子 (Comparison Operators),也就是比對三個等號左邊跟右邊是否完全相同,它的英文定義是 Identical (相同)。若二邊的型別不同,就是不相同,回傳會是 false。例如一邊是數字的 1, 而另一邊是字串的 1,它就不是相同。