Heim > Artikel > Backend-Entwicklung > thinkPHP,引入文件问题。
第15行,'dirname(__FILE__)/protocl'
你觉得__FILE__在字符串里能被解析吗?拆分成dirname(__FILE__) . '/protocl'
导入文件路径失败,检查下导入的文件
你 import 的参数是错误的,文件的放置也不符合 import 的约定
你完全可以继续使用 require,虽然不符合 TP 的规范
由于你没有提及实例化对象时出现错误,因此可假定实例化是成功的
于是可推定实例化语句包含在被嵌入的文件中
发生 Call to a member function .... 错误的原因是:实例化的对象是全局的,在 tp 的方法中不能直接使用(这是基本的变量作用域问题)
第15行,'dirname(__FILE__)/protocl'
你觉得__FILE__在字符串里能被解析吗?拆分成dirname(__FILE__) . '/protocl'
你 import 的参数是错误的,文件的放置也不符合 import 的约定
你完全可以继续使用 require,虽然不符合 TP 的规范
由于你没有提及实例化对象时出现错误,因此可假定实例化是成功的
于是可推定实例化语句包含在被嵌入的文件中
发生 Call to a member function .... 错误的原因是:实例化的对象是全局的,在 tp 的方法中不能直接使用(这是基本的变量作用域问题)
include 'Ice.php'; include 'ZXINSserver.php'; include 'protocl/ZXINUserInfoServant.php'; $iceGridDefaultLocator='ZXIceGrid/Locator:default -h 192.168.1.61 -p 1201 -t 1000:default -h 192.168.1.160 -p 1201 -t 5000:default -h 192.168.1.61 -p 1102 -t 5000'; $initData = new Ice_InitializationData; $initData->properties = Ice_getProperties(); $initData->properties->setProperty("Ice.Default.Locator", $iceGridDefaultLocator); $communicator = Ice_initialize($initData); try { //$p = $communicator->stringToProxy("ZXINStatusServant:tcp -h 192.168.1.60 -p 1111 -t 5000"); $p = $communicator->stringToProxy("ZXINUserInfoServant"); $user = ZXIN_ZXINUserInfoServantPrxHelper::checkedCast($p);
错误信息说你用一个空对象调用了stringToProxy,说明你没有实例化某个对象,看看错误在哪个文件的哪一行出了错。
用include现在提示:Class 'Ice_InitializationData' not found,$initData = new Ice_InitializationData;这一句
Ice_InitializationData这个是ice.php里面的
class Ice_InitializationData{ public function __construct($properties=null, $logger=null) { $this->properties = $properties; $this->logger = $logger; } public $properties; public $logger;}
Class 'Ice_InitializationData' not found没有找到该类,是不是include的路径有问题,类的文件名正确吗?
Class 'Ice_InitializationData' not found没有找到该类,是不是include的路径有问题,类的文件名正确吗?
你把你上面的路径改为绝对路径
vendor('Ice');
vendor('ZXIN.ZXINSserver');
vendor('ZXIN.ZXINUserInfoServant');
我现在把这些依赖文件全部放到了Extend\Vendor里面,现在页面显示500错误。