ホームページ >バックエンド開発 >PHPチュートリアル >java - PHP5クラスのインスタンス変数宣言の問題
リーリー
上記の通り、PHP5クラスではインスタンス変数を直接宣言するとクラス宣言エラーが報告されます
次のように変更するだけです
リーリー最初に null 値を宣言し、次にメソッドを使用して値を割り当てる必要があります。それを書き出して、バグがないことを確認するために長い間チェックしてから、それが文法上の要件であることに気づくことがよくあります。 。
php5 でのオブジェクトの学習がまだ完全ではない可能性があることは理解していますが、それについて話しましょう。
追加の質問: これは PHP7 でも当てはまりますか?
バード兄弟、@Laruence と性交してください
。
次のように変更するだけです
リーリー
最初に null 値を宣言し、次にメソッドを使用して値を割り当てる必要があります。私はそれを書き出して、バグがないことを確認するために長い間チェックしていましたが、それが文法上の要件であることに気づきました。 。php5 でのオブジェクトの学習がまだ完全ではない可能性があることは理解していますが、それについて話しましょう。
追加の質問: これは PHP7 でも当てはまりますか?
バード兄弟、@Laruence と性交してください
。
のような構文が許可されている場合、ファイルがロードされた後に DB クラスが初期化されるためです。 private $db = new Db();
クラス A がメモリにロードされ、クラス Db がインスタンス化されることに注意してください。
Db クラスも同じ構文を使用する場合、一連のクラスのインスタンス化アクションがインクルードと同時に実行されるため、ファイルをインクルードすると非常に遅くなる可能性があります。
この機能を無効にし、クラス コンストラクターで他のクラスのインスタンス化のみを許可することで、クラスのインスタンス化プロセスをより適切に制御できます。クラスがロードされるとき、付随するクラスのインスタンス化は決して生成されません。
システムの最適化であっても、プログラムの実行時間の制御であっても、予測可能で制御可能なものは良好で持続可能です。
PHP は現時点では、オブジェクト属性をオブジェクトに直接割り当てることをサポートしていません。オブジェクトの割り当てはコンストラクターを介してのみ実行できます。
もちろん、PHP が Java からオブジェクト指向を学ぶべきだとは言えませんし、Java がオブジェクト指向のベンチマークであると誰も規定していません。PHP が本当にすべての点で Java と同じであるなら、なぜそれが依然として呼ばれているのでしょうか。 PHP?
回答: これは PHP7 にも当てはまります。
クラスの直接代入はスカラー(数値、文字列、配列、ブール値)のみ可能です
お誘いありがとうございます。上記の答えは的中しています
それらはすべてマスターです。私は関数の外でクラスを直接インスタンス化したことはありませんが、2 つのデータベースを記述する 2 番目の方法は同じ変数ではありません