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

ответ

1

Tester не в глобальном пространстве имен. Он находится в пространстве имен my.

Оба они будут работать:

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

, поэтому проверки 'class_exists' в глобальном пространстве имен? – saplingPro

+1

Ну, он проверяет имя класса, а имя класса, которое вы передали, относится к классу в глобальном пространстве имен. – nickb

+0

хорошо! Спасибо – saplingPro

Смежные вопросы