构造函数没有被调用

Sin*_*ice 3 php

我的一个班级有一个奇怪的问题.

这个班是下一个

namespace Core;
class RequestHandler{
    protected $app;
    public function RequestHandler($app){
        echo "EEE";
        $this->app = $app;
    }
}
Run Code Online (Sandbox Code Playgroud)

初始化是

$requestHandler = new Core\RequestHandler($app);
Run Code Online (Sandbox Code Playgroud)

我不知道为什么它没有显示任何东西,但如果我将构造函数更改为__construct,一切正常.

我正在使用php 5.6.20,我知道它也应该按名称执行构造函数.

Jus*_*nas 6

检查例子在这里:

<?php
namespace Foo;
class Bar {
    public function Bar() {
        // treated as constructor in PHP 5.3.0-5.3.2
        // treated as regular method as of PHP 5.3.3
    }
}
?>
Run Code Online (Sandbox Code Playgroud)

警告

旧样式构造函数在PHP 7.0中已弃用,将在以后的版本中删除.您应该始终在新代码中使用__construct().

所以在5.6.20中,不推荐使用名称构造函数.

从PHP 5.3.3开始,与命名空间类名的最后一个元素同名的方法将不再被视为构造函数.此更改不会影响非命名空间的类.

您可以尝试删除命名空间,但我认为这不是解决它的好方法.