简短版本
这段代码$out = new static();
使PHP在Windows中使用xampp或wampserver意外地无声地退出。
长版本
我正在做一个旧项目,它可以在Ubuntu 15.10上用NGinX/php-fpm php5.5.9(dev)完美运行,也可以在Ubuntu 14.04上用apache2.4/Fast-CGI php5.5.13(production)完美运行。
今天,我的一个设计师同事刚刚查看了这个相同的repo来编辑一些html/css。
不幸的是,他无法在他的windows 10桌面上使用Xampp:v3.2.2(PHP 5.5.38)或Wampserver:2.5(PHP 5.5.13)运行该项目。
这段代码实现了一个老式的自制(类似于活动记录)数据库抽象层,其中所有的表都用一个类来表示,每个类都继承自Table类。
PHP在以下代码段(位于“Table”类中)停止:
# Table.php
public static function Get($id = null){
echo 'test'; # Displays in the web browser
error_log('test'); # append a line in the error_log file
$out = new static(); # php seams to stop here
echo 'after'; # Not displayed
error_log('test'); # Not inserted in the log file
// Fetch data from DB if id is specified
if($id){
$out->load($id);
}
return $out;
}
然后,他尝试将静态调用替换为:
// …
$class = get_called_class();
echo $class; # Displays "Article" (the right class name) in the browser
$out = new $class(); # The script dies silently as before.
// …
在windows上的后期静态绑定上下文中,PHP对象示例化似乎出现了问题。
非常感谢谁可以帮助解决这个问题。
1条答案
按热度按时间dm7nw8vv1#
显示完整的代码来演示这个问题。似乎对我来说,PHP 5.3.0或更新版本是有效的:https://3v4l.org/83ost