2010-07-01 34 views
6

索引未設置時,$ _GET會返回什麼? (找不到PHP手冊約$ _GET的任何東西)

我寫了這個檢查,如果$ _GET [ '身份證'] isset - 如果不是的話,設置的$ id爲false:

<?php $id = (isset($_GET['id'])) ? $_GET['id'] : false ?> 

回答

14

$ _GET只是一個普通的數組,所以它的行爲與任何其他數組完全相同。

這意味着,當您調用不存在的索引時,它會將NULL返回給變量並引發「未定義索引」通知。

你需要知道的與$ _GET是唯一包含不安全(用戶可修改)數據

+0

是的,我意識到這一點,所以我使用SQL準備好的語句作爲來自get的id去查詢。 謝謝! :) – Rihards 2010-07-02 09:37:42

0

如果未設置索引,則在$_GET內的該索引上運行isset()返回false。

3

取消設置指標的值爲NULL。訪問它們將導致通知被提出(除非您的錯誤級別被設置爲吞下通知)。

+4

值得一提的是,isset()是一種語言結構而不是函數,這就是爲什麼在isset()中輸入'$ _GET ['nonexistent_key']'不會引起通知被引發的原因。 – Hammerite 2010-07-01 14:07:15

1

有在手冊中的一個示例:PHP: $_GET

示例腳本的相關部分是:

if(isset($_GET["a"])) echo "a is set\n"; 

劇本的那部分打印出「被設定爲」當a爲通過URL參數傳遞。 http://path/to/script.php?a

0

$_GETsuperglobalarray

這樣,它遵循的規則用於存取陣列的鍵:

試圖訪問其 尚未定義的陣列密鑰是相同的 訪問任何其他未定義的 變量:一個E_NOTICE - 級別錯誤 消息將被髮布,並且結果 將爲NULL

相關問題