Как разрешить пространство имен на php? - PullRequest
1 голос
/ 20 января 2012

Я делаю первый тест на php5.В частности, я пытаюсь работать с пространствами имен, но кажется, что php не разрешает пространство имен.Вот тест, который я сделал:

файл 1: test.php

<?
namespace \first_test;

class Test  {
    function test_function(){
        print "works";
    }
}
?>

файл 2: use_namespace.php

<?
use \first_test;


$a=new \first_test\Test();
$a->test_function();
?>

Я получаю фатальную ошибку:Неустранимая ошибка: класс 'first_test \ Test' не найден в here_the_path_where use_namespace.php is.

Любая помощь приветствуется.

PS Оба файла находятся в одном каталоге, php 5.3.9 в windows.

Ответы [ 2 ]

2 голосов
/ 20 января 2012

Вам не нужно \ при объявлении пространства имен, оно нужно только при вызове функций из него.

<?php
   namespace first_test;

  // ...
?>

Кроме того, во втором файле вам нужно include test.php, иначе он не знает, что такое first_test.

0 голосов
/ 09 августа 2018

В сторонней библиотеке они, скорее всего, используют автозагрузчик, который автоматически выполняет все необходимые операции.Так что, если вы не хотите писать вручную include, добавьте свой собственный автозагрузчик http://php.net/manual/en/language.oop5.autoload.php

Обычно, точка входа содержит автозагрузчик, поэтому все включенные файлы будут использовать его автоматически.Описание стандарта кодирования для этого можно найти по адресу https://www.php -fig.org / psr / psr-4 /

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...