国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

PHPのクラス宣言とインスタンス化の違いは何ですか?
習(xí)慣沉默
習(xí)慣沉默 2017-05-16 13:10:23
0
2
569

私は初心者です。laravel など、多くのツール クラスは直接宣言することで使用できることがわかりました。

リクエスト $request;
$request->get();

これには疑問を感じますが、クラス変數(shù)を宣言するとコードがインスタンス化されるのでしょうか?
Baidu で検索したところ、PHP 言語でこの問題について質(zhì)問した人は誰もおらず、Java だけでした。Java は次のようなものです:
Class1 item1;オブジェクトを宣言
參照型を生成、參照のタイプ (オブジェクト o または From f) に関係なく、4 バイトのメモリを占有します。
Class1 item1 = new Class1();
Createクラス インスタンスで、メモリの一部を開き (このメモリはクラス自體のサイズに関連します)、參照 item1 がこのメモリの開始位置を指すようにします。

その場合、$requestRequest への単なる?yún)⒄栅扦ⅳ辍?code>Request はまだインスタンス化されておらず、メモリ內(nèi)に存在しません。では、なぜ $request はそのメソッドを直接使用できるのでしょうか?ソース コードを確認(rèn)すると、このクラスのプロパティとメソッドは static 靜的であり、インスタンス化前にメモリ內(nèi)にすでに存在していますが、非靜的プロパティとメソッドも多數(shù)あります。非靜的メソッド!

これを直接呼び出すとポインタ例外が発生しないでしょうか?
初心者に質(zhì)問します!

習(xí)慣沉默
習(xí)慣沉默

全員に返信(2)
Ty80

PHP にはこのような構(gòu)文はありません
表示される內(nèi)容は次のようになります
Route::get('/', function (IlluminateHttpRequest $request) {

リーリー

});
これは依存性注入です
http://www.golaravel.com/lara...

過去多啦不再A夢

以下は間違いです: ソースコードをよく見てみると、答えはこんな感じでしょうか?

リーリー

これら 2 つのコードの前に、私は use IlluminateHttpRequest;

を使用しました

use は名前空間を使用するだけですが、クラスを呼び出したい場合は、クラス ファイルをロードする (必須) か、自動的にロードする必要があります。 , lavavel は自動読み込みを使用するため、IlluminateHttpRequest を使用することは、Request クラスを直接使用できることと同等であると考えています。実際、Laravel は Request クラスを使用するときに多くの作業(yè)を行います。
Laravelの自動読み込み機能は以下の通りです

リーリー

インスタンス化されていないクラスを使用すると、自動的にロードされてインスタンス化されることがわかります。

最新のダウンロード
詳細(xì)>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート