オブジェクトの作成後にコンストラクターが自動的に呼び出されることを常に理解していました テストが失敗しました
class o{ public function __construct(){ var_dump($object); }}$object = new o;
コンストラクターは次のようにする必要があります。変数
クラス o{
public function __construct($object){
var_dump($object)
}
}
$str = "" new
public function __construct(){
var_dump($object); }
}
クラスには $object 変数がないため、出力は次のようになります初期化中に $object を渡すことができます。例:
<?phpclass o{ public function __construct($object){ var_dump($object); }}$oo = new stdClass();$oo->name = 'fdipzone';$object = new o($oo);?>
これは new o の後に追加されます オブジェクトは $object; に割り当てられ、オブジェクトの作成時にコンストラクターが実行されます
class o{ public function __construct(){ global $object; //加上这个 var_dump($object); //输出 NULL }} $object = new o;var_dump($object); //输出 object(o)#1 (0) { }
new o はアクションであり、クラス o からオブジェクトを作成します
オブジェクトを作成するとき、php はコンストラクターを呼び出します (そのため、独自の処理をいくつか実行する機会があります)
注:
$object = new o;
$object が取得するのは new o の参照ではなく、new o そのものです
@xuzuning ああ、構築方法は知っていますが、いつ呼び出されるのかがわかりません。 new o がオブジェクトを取得すると、コンストラクターが自動的に呼び出され、オブジェクト参照が $object に割り当てられます。
@xuzuning そうですか? PHP でリソースとオブジェクトを割り当てる方法は参照によるものですか?
それはオブジェクトと変数を一緒にバンドルすることです
@xuzuning つまり、それが引用文の意味ですか?教えてください
class T { public $v = 1; function see() { echo $this->v, PHP_EOL; }}$a = new T;$b = new T;$a->v = 2;$a->see(); //2$b->see(); //1 如果 new 传递的是引用,那么为什么是1 而不是 2 呢?$c = $b; //对象赋值传递的是引用$c->v = 100;$b->see(); //100$c->see(); //100 所以 $b->v 变了,$c->v 也跟着变了
クラスのコンストラクターメソッドについて十分に理解していないようです コンストラクターメソッドの役割はオブジェクトを初期化することです。新しいオブジェクト When を作成する場合、代入なしでは、コンストラクター メソッドは無意味です