2014-09-23 37 views
0

可以關閉,在我的項目中丟失概覽並在文件中工作,該文件具有相同的名稱和方法。所以沒有改變。它現在有效。對不起,浪費你的時間。我的錯。isset中的未定義變量()

我有一個靜態工廠方法,我試圖獲取參數的類名。

static function factory($row) 
{ 
    if (is_null($classname)) { 
    $classname=get_called_class(); 
    } 

錯誤輸出:

[星期二18年9月23日:35:24.078345 2014] [:錯誤] [9971 PID] [客戶端 127.0.0.1:45702] PHP說明:未定義的變量:在類名上/var/www/dev/lib/class.base.php 9號線,引用者:

> http://localhost/dev/app.php?action=do 

當我嘗試設置的$ className = NULL;在檢查之前,還有一個未定義的變量錯誤。與isset($ classname)一樣的東西。我做錯了什麼?

下面是另一個例子,thhat不爲我工作:

class definetest{ 
static function factory() 
    { 
     if (is_null($classname)) { 
     $classname=get_called_class(); 
     } 
     return $classname; 
    } 

} 

$x = new definetest(); 

echo $x::factory(); 

它返回的類名,但我有一個錯誤在我的Apache日誌

+1

[無法重現這個(https://eval.in/197586) – Ohgodwhy 2014-09-23 16:42:56

+0

也許這是太簡單了,但在實際創建變量在腳本的任何地方? – tfrascaroli 2014-09-23 16:48:45

+0

$ classname = null;你把它放在哪裏? – Edward 2014-09-23 16:50:28

回答

1
static function factory($row) 
{ 
    if (isset($classname)) { 
    $classname = get_called_class(); 
    } 
} 

如果使用isset( )在調用變量之前。不可能顯示未定義的變量。

http://php.net/manual/en/function.isset.php isset - 檢測變量是否設定,並沒有NULL