这个问题在这里已有答案:
这个问题对你们很多人来说可能听起来很愚蠢,但我仍然无法在文档中找到任何线索(我做过RTFM)。
当您在php文件中设置php变量,然后在您需要的文件中使用它时,它完全有效。但是今天,在尝试对命名空间做同样的事情时,我遇到了意外错误。
在主要的php文件中:
include("./scripts/proj4php/vendor/autoload.php");
use proj4php\Proj4php;
use proj4php\Proj;
use proj4php\Point;
// Initialise Proj4
$proj4 = new Proj4php();
require './functions/myfile.php';
在myfile.php中:
$pointDest = $proj4->transform($projWGS84, new Point($r['coord_x'], $r['coord_y'], $projL2e));
最后一个通道是抛出Undefined Point类错误,而如果我将该行放在主php文件中则完全没问题。
$ proj4和Point()都已在主php文件中设置,但只有$ proj4在所需的php文件中正常。
怎么会 ?这里的逻辑是什么?
感谢大家的帮助 !
您在main.php文件中为proj4php\Point
创建了一个别名,但该别名不会扩展到其他文件,因为它在编译时解析,而不是运行时。
您需要在使用它的文件中对该类进行别名/导入。老实说,如果你不在那里使用它,在main.php中导入Point是没有意义的。