2013-02-18 1 views
1

Следующий скрипт находится внутри каталога с именем package_1:Я получаю сообщение об ошибке, когда пытаюсь включить скрипт в другой каталог: Почему?

<?php 
namespace ashaar; 
class Ghazal { 
    public function nameIt() { 
     echo "Dekh to dil ke jaan se utha hai <br />"; 
    } 
} 

и следующий сценарий находится внутри каталога с именем package_2:

<?php 
namespace package_1\ashaar; 
require 'first.php'; 
$obj = new Ghazal(); 
$obj->nameIt(); 

Когда я запускаю выше сценарий (внутри пакета каталога 2) Я получаю сообщение об ошибке:

Warning: require(\package_1\first.php): failed to open stream: No such file 
or directory in /opt/lampp/htdocs/package_2/second.php on line 3 

Fatal error: require(): Failed opening required '\package_1\first.php' 
(include_path='.:/opt/lampp/lib/php') in /opt/lampp/htdocs/package_2/second.php 
on line 3 

Почему?

ответ

0

first.php

<?php 
namespace ashaar; 
class Ghazal { 
    public function nameIt() { 
     echo "Dekh to dil ke jaan se utha hai <br />"; 
    } 
} 

second.php

<?php 
namespace ashaar; 
require_once('../package_1/first.php'); 
$obj = new Ghazal(); 
$obj->nameIt(); 

Что заставило вас сделать package_1\ashaar, когда вы включаете first.php, который находится внутри пакета package_1.

0

Изменение места для:

require '..\package_1\first.php'; 
+0

это не помогает – saplingPro

+0

, тогда ваша структура папок не то, что вы заявили. скриншот дерева папок? –

+0

http://i49.tinypic.com/25ui3ac.png – saplingPro

0

изменить местоположение в

include_once("..\package_1\first.php"); 
-1

Я думаю, вы должны использовать пространство имен, как это.

first.php ...

<?php 
namespace package_1\ashaar; 
class Ghazal { 
    public function nameIt() { 
     echo "Dekh to dil ke jaan se utha hai <br />"; 
    } 
} 

second.php ...

<?php 

namespace package_2; 
require '../package_1/first.php'; 
use package_1\ashaar\Ghazal; 


$obj = new Ghazal(); 
$obj->nameIt(); 

См use ключевое слово, которое необходимо использовать код в другом пространстве имен.

+0

не помогает ... – saplingPro

+0

Я вносил изменения, теперь он работает. Измените ключевое слово use, чтобы вставить Ghazal. –

+0

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

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