php里isset的属性,测试PHP中变量是否存在的最佳方法;isset()显然已损坏
有時我會迷失方向,試圖弄清楚在給定情況下要使用哪種比較操作。isset()僅適用于未初始化或顯式為null的值。傳遞/分配空值是確保邏輯比較按預期工作的好方法。
不過,仍然很難考慮,因此這里有一個簡單的矩陣,用于比較不同操作將如何評估不同的值:
|? ? ? ? ? ?| ===null | is_null | isset | empty | if/else | ternary | count>0 |
| -----? ? ?| -----? ?| -----? ?| ----- | ----- | -----? ?| -----? ?| -----? ?|
| $a;? ? ? ?| true? ? | true? ? |? ? ? ?| true? |? ? ? ? ?|? ? ? ? ?|? ? ? ? ?|
| null? ? ? | true? ? | true? ? |? ? ? ?| true? |? ? ? ? ?|? ? ? ? ?|? ? ? ? ?|
| []? ? ? ? |? ? ? ? ?|? ? ? ? ?| true? | true? |? ? ? ? ?|? ? ? ? ?|? ? ? ? ?|
| 0? ? ? ? ?|? ? ? ? ?|? ? ? ? ?| true? | true? |? ? ? ? ?|? ? ? ? ?| true? ? |
| ""? ? ? ? |? ? ? ? ?|? ? ? ? ?| true? | true? |? ? ? ? ?|? ? ? ? ?| true? ? |
| 1? ? ? ? ?|? ? ? ? ?|? ? ? ? ?| true? |? ? ? ?| true? ? | true? ? | true? ? |
| -1? ? ? ? |? ? ? ? ?|? ? ? ? ?| true? |? ? ? ?| true? ? | true? ? | true? ? |
| " "? ? ? ?|? ? ? ? ?|? ? ? ? ?| true? |? ? ? ?| true? ? | true? ? | true? ? |
| "str"? ? ?|? ? ? ? ?|? ? ? ? ?| true? |? ? ? ?| true? ? | true? ? | true? ? |
| [0,1]? ? ?|? ? ? ? ?|? ? ? ? ?| true? |? ? ? ?| true? ? | true? ? | true? ? |
| new Class |? ? ? ? ?|? ? ? ? ?| true? |? ? ? ?| true? ? | true? ? | true? ? |
為了適合桌子,我稍微壓縮了標簽:
$a; 引用已聲明但未分配的變量
第一列中的所有其他內容均指分配的值,例如:
$a = null;
$a = [];
$a = 0;
…
這些列指的是比較操作,例如:
$a === null
isset($a)
empty($a)
$a ? true : false
…
所有結果均為布爾值,true已打印且false被省略。
您可以自己運行測試,請檢查以下要點:https :
//gist.github.com/mfdj/8165967
總結
以上是生活随笔為你收集整理的php里isset的属性,测试PHP中变量是否存在的最佳方法;isset()显然已损坏的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 既约分数蓝桥杯c语言,2021蓝桥杯C+
- 下一篇: burpsuite小米手机抓包_使用bu