簡體   English   中英

在讀取/使用變量之前,是否總是需要檢查是否設置了post和get變量?

[英]Do we always need to check if post and get variables are set before reading/using them?

考慮以下示例:

if ( isset($_POST['type']) && 'page' == $_POST['type'] )
    return;

我們需要isset($_POST['type'])檢查嗎?

從目前為止我所看到的似乎是以下結果:

if ( 'page' == $_POST['type'] )
    return;

還是在某些情況下會引起問題?

使用“ isset ”是正確的方法,否則將引發警告:“索引類型未定義”。 它還檢查數組是否為空。

isset()函數將用於替換兩個函數

if(!empty(your_array) && array_key_exists('type',$POST['type']))

因此,請使用此檢查以避免進一步的並發症

這可能會導致出現錯誤通知之類的問題: PHP:“通知:未定義的變量”,“通知:未定義的索引”和“通知:未定義的偏移量”

您可以使用array_key_exists代替isset array_key_exists方法肯定會告訴您數組中是否存在鍵,而isset僅在鍵/變量存在且不為null時返回true

還有另一個重要區別。 當$ x不存在時, isset不會抱怨,而array_key_exists則不會。

$x = [
    'key1' => 'abcd',
    'key2' =>  null
];

isset($x['key1']);             // true
array_key_exists('key1', $x);  // true

isset($x['key2']);             // false
array_key_exists('key2', $x);  // true

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM