以下脚本位于名为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
为什么?
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();
当您将first.php
包含在包package_1
中时,是什么促使您执行package_1'ashaar
。
将位置更改为:
require '..'package_1'first.php';
将位置更改为
include_once("..'package_1'first.php");
我认为您必须使用这样的名称空间。
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
关键字,该关键字对于在另一个命名空间中使用代码至关重要。