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

这是为什么 ?

4

4 回答 4

0

将位置更改为:

require '..\package_1\first.php';
于 2013-02-18T07:34:43.740 回答
0

将位置更改为

include_once("..\package_1\first.php");
于 2013-02-18T07:40:46.200 回答
0

第一个.php

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

第二个.php

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

package_1\ashaar当您将其包含在内时first.php,您做了什么package_1

于 2013-02-18T12:02:17.570 回答
-1

我认为你必须使用这样的命名空间。

首先.php...

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

第二个.php...

<?php

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


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

请参阅use在另一个命名空间中使用代码所必需的关键字。

于 2013-02-18T08:05:55.847 回答