我在Windows机器上的AppServ中使用php 5.2.6,而且PHPExcel似乎不起作用并且不会产生任何错误。我将error_reporting设置为E_ALL。
在我使用php 5.6并使用vagrant / homestead的Linux机器上,相同的代码工作正常。
这是我的代码: http://pastebin.com/6dJC8gaP
我添加了一些回声,看看它到底死了,它似乎死在第9行。我原以为这可能是php 5.2和:: referencing的一个问题,所以我尝试使用call_user_func,它也适用于我的PHP 5.6,但不能在我的PHP 5.2上工作
答案 0 :(得分:0)
http://php.net/manual/en/function.call-user-func.php
<?php
namespace Foobar;
class Foo {
static public function test() {
print "Hello world!\n";
}
}
call_user_func(__NAMESPACE__ .'\Foo::test'); // As of PHP 5.3.0
call_user_func(array(__NAMESPACE__ .'\Foo', 'test')); // As of PHP 5.3.0
?>
每页:
引用:
在PHP v5.2中,你/可以/使用call_user_func(array($ this,'parent :: SOME_FUNCTION'))。
如果你没有自定义__autoload()函数,那么你就可以了。
如果你有自定义__autoload(),你需要让它'父'知道。类似的东西:
理由:PHP 5.2令人惊讶地试图自动加载一个名为“parent”的类。但是,如果你没有在__autoload()中为'parent'类做任何事情,它就可以正常工作。
答案 1 :(得分:0)
在PHPExcel / Settings.php中有两个对libxml_disable_entity_loader函数的引用。
该功能在php 5.2.11之前不可用,并且它前面的@导致了无声错误。
我按照他们的建议做了,并在function_exist检查中包装了该函数。现在一切都很好。