PHP 5.3构造函数方法

Ras*_* DK 1 php oop composition

我是一名Java/C#程序员,正在尝试用PHP学习/完成一个项目.任何人都可以向我解释为什么"组合"在PHP 5.3中不起作用,因为人们会期望从面向对象的语言?

我试图研究这个问题,但由于术语混淆(使谷歌无用......)和糟糕的文档,我还没有找到任何有用的东西.

<?php /*PHP VERSION 5.3.3*/

class MyClassOne
{
    public function myFunctionOne()
    {
        echo "<p> My Function One </p>";
    }
}

class MyClassTwo
{
    private $myClassOne;

    function __constructor() // WRONG WRONG WRONG - __construct() - and it works.
    {
        $this->myClassOne = new MyClassOne();
    }

    public function myFunctionTwo()
    {
        echo "<p> My Function Two </p>";
        $this->myClassOne->myFunctionOne(); // This crashes the "application"
    }

}


$myclassone = new MyClassOne();
$myclassone->myFunctionOne();
$myclasstwo = new MyClassTwo();
$myclasstwo->myFunctionTwo();


/*
Expectet result:
My Function One
My Function Two
My Function One

Real result:
My Function One
My Function Two
(application/runtime crash)
*/

?>
Run Code Online (Sandbox Code Playgroud)

如果有人可以提供解释或向我展示此行为的相关文档,将非常感谢.

eli*_*ide 7

你有一个错字.更改__constructor__construct,它会正常工作.

PHP构造函数应该被命名__construct()为每个文件.