2013-02-19 99 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