問題がありますが、 'new class()'を作成せずにコンストラクタを呼び出せますか?それとも、多分これのための別の方法があります。PHPコンストラクタが呼び出されていません
<?php
class a
{
public static $hello;
public function say()
{
return self::$hello;
}
}
class b extends a
{
public function __construct()
{
self::$hello = 'hello world';
}
}
echo b::say();
?>
を私はしてみています
$b = new b();
echo $b->say();
そして、それは仕事です。しかし、私は使用したいb::say();
私を助けることができますか?
ありがとうございました!
なぜクラスをインスタンス化せずにコンストラクタを呼び出したいのですか?これが最初のコンストラクタの目的であるとすれば、純粋に静的メソッドで動作させたい場合は、静的プロパティを設定するためにコンストラクタを使用しないでください。 –
@ MarkBaker私は別のファイル$ hello変数の値が異なります。だから私はちょうどb :: say();のように呼び出します。 c :: say(); 私のプロジェクトでは実際のコードではありませんが、論理は私の問題を解決するためのものです。申し訳ありませんが、私の英語は良くありません。ありがとうございました! – kresek
多くの同じクラスを作成していて、$ helloの値が異なる場合は、オブジェクト指向が何であるか誤解していると思います。 –