2012-12-14 16 views
2
<?php 

function myFunction($yesNname) { } 

empty($noName); 
print_r($noName); 
isset($noName); 

myFunction($noName); 

輸出:PHP不發出任何通知爲未定義的變量,如果該變量被傳遞給空的()或isset()函數

PHP Notice: Undefined variable: noName ... on line 6 // print_r 
PHP Notice: Undefined variable: noName ... on line 9 // myFunction 

未定義變量在空()isset使用()。但是PHP沒有發佈關於它的通知。爲什麼PHP顯示歧視某些功能?我如何編寫這種類型的函數?

+0

有一個函數來測試一個變量是否存在,並使它在不存在時觸發錯誤消息的要點是什麼? –

+0

@ÁlvaroG.Vicario我可以理解。我想知道如何編寫這種類型的函數。 –

+0

你爲什麼要這樣?你能把這種情況勾畫出來嗎? – giorgio

回答

3

無論isset()也不empty()的功能。正如手冊說明:

這是一個語言結構而非函數

要獲得這種行爲你需要調整用C編寫PHP源代碼

這是可能的你也可以用PHP擴展來獲得這種行爲,但是你也需要用C編寫它並將它安裝到你的服務器中。

更新:

+0

你可以添加參考嗎? –

3

您是不是要找這樣的:

if(!empty($noName)) { 
// print_r 
// function($noName); 
} 
+0

爲什麼我應該把調用函數的條件?你是否在我的代碼中看到isset()或empty()這樣的條件? –

+0

請注意isset並不需要與empty一起使用(如果var不存在,empty已經返回false) – giorgio

+0

放輕鬆@habeebperwad,他試圖幫助你...並且實際上是對的 – giorgio

2

有沒有辦法做到這一點在功能方面。如果您不想顯示錯誤,則可以在調用函數之前先檢查變量,或使用error control operator "@"