クラス B を使用するクラス A を実装しようとすると、予期しない動作が発生します。ファイルの内容は次のとおりです。
> cat test.php
<?php
error_reporting(E_ALL);
require_once("A.php");
//require_once("B.php"); //now it'd work, but it's not the point
$a = new A();
$b = $a->getB();
var_dump($b);
$b->sayHi();
> cat A.php
<?php
require_once('B.php');
class A
{
private $b;
public function getB()
{
return $this->b;
}
public function __construct()
{
$b = new B();
}
}
> cat B.php
<?php
class B
{
public function sayHi()
{
echo "Hi!";
}
}
> php test.php
NULL
PHP Fatal error: Call to a member function sayHi() on a non-object in /var/www/przypadek_testowy/test.php on line 10
私が知っておくべきPHPの癖はありますか?この場合、test.php で B.php を要求するのは見苦しく、より良い解決策を希望します。