索引未設置時,$ _GET會返回什麼? (找不到PHP手冊約$ _GET的任何東西)
我寫了這個檢查,如果$ _GET [ '身份證'] isset - 如果不是的話,設置的$ id爲false:
<?php $id = (isset($_GET['id'])) ? $_GET['id'] : false ?>
索引未設置時,$ _GET會返回什麼? (找不到PHP手冊約$ _GET的任何東西)
我寫了這個檢查,如果$ _GET [ '身份證'] isset - 如果不是的話,設置的$ id爲false:
<?php $id = (isset($_GET['id'])) ? $_GET['id'] : false ?>
$ _GET只是一個普通的數組,所以它的行爲與任何其他數組完全相同。
這意味着,當您調用不存在的索引時,它會將NULL返回給變量並引發「未定義索引」通知。
你需要知道的與$ _GET是唯一包含不安全(用戶可修改)數據
如果未設置索引,則在$_GET
內的該索引上運行isset()
返回false。
取消設置指標的值爲NULL。訪問它們將導致通知被提出(除非您的錯誤級別被設置爲吞下通知)。
值得一提的是,isset()是一種語言結構而不是函數,這就是爲什麼在isset()中輸入'$ _GET ['nonexistent_key']'不會引起通知被引發的原因。 – Hammerite 2010-07-01 14:07:15
var_dump($_GET['nonexistent']); // outputs NULL
有在手冊中的一個示例:PHP: $_GET。
示例腳本的相關部分是:
if(isset($_GET["a"])) echo "a is set\n";
劇本的那部分打印出「被設定爲」當a
爲通過URL參數傳遞。 http://path/to/script.php?a
這樣,它遵循的規則用於存取陣列的鍵:
試圖訪問其 尚未定義的陣列密鑰是相同的 訪問任何其他未定義的 變量:一個
E_NOTICE
- 級別錯誤 消息將被髮布,並且結果 將爲NULL
。
是的,我意識到這一點,所以我使用SQL準備好的語句作爲來自get的id去查詢。 謝謝! :) – Rihards 2010-07-02 09:37:42