2013-02-19 106 views
0

在下面的腳本中,我檢查了class_exists函數。這個函數的範圍是什麼?當我爲這個類測試時,它會爲此腳本返回false爲什麼class_exists函數返回false?

<?php 
namespace my; 
class Tester {  
    public function check() { 
     $classname = 'Tester'; 
     if(class_exists($classname)) { 
      echo "class exists ! <br />"; 
     } else { 
      echo "class doesn't exist ! <br />"; 
     } 
    } 
} 

$obj = new Tester(); 
$obj->check(); 

輸出:類不存在

+0

你試過調用它的類定義之外? – Charleh 2013-02-19 01:42:28

回答

1

Tester不是全局命名空間。它位於my命名空間中。

這兩項將工作:

$classname = '\my\Tester'; 
$classname = 'my\Tester'; 
+0

所以'class_exists'檢查全局命名空間? – saplingPro 2013-02-19 01:43:40

+1

好吧,它會檢查類名,並且您傳遞的類名是全局名稱空間中的類。 – nickb 2013-02-19 01:44:31

+0

好吧!謝謝 – saplingPro 2013-02-19 01:45:08