新しい静的とは何ですか?[重複]。
2023-09-28 08:01:44
質問
いくつかのフレームワークで、このようなコードを見かけました。
return new static($view, $data);
をどのように理解するのでしょうか?
new static
?
どのように解決するのですか?
と書くと
new self()
と書くと、そのクラスのインスタンスを取得します。
の魔法です。
self
キーワード
.
だから
class Foo
{
public static function baz() {
return new self();
}
}
$x = Foo::baz(); // $x is now a `Foo`
を取得します。
Foo
を使用した静的修飾子が派生クラスであっても
class Bar extends Foo
{
}
$z = Bar::baz(); // $z is now a `Foo`
ある意味で)ポリモーフィズムを有効にし、使用した修飾子をPHPに認識させたい場合は
self
キーワードを
static
キーワードを使用します。
class Foo
{
public static function baz() {
return new static();
}
}
class Bar extends Foo
{
}
$wow = Bar::baz(); // $wow is now a `Bar`, even though `baz()` is in base `Foo`
これは、PHPの機能である
後期静的バインディング
このキーワードは、他のもっと一般的な使い方と混同しないようにしましょう。
static
.
関連
-
[解決済み】Weird PHP error: 'Can't use function return value in write context'.
-
[解決済み】メンバ関数をnullで呼び出す?
-
[解決済み] Uncaught SyntaxError: JSON の位置 1 に予期しないトークン o があります。
-
[解決済み] PHP と mod_fcgid: handle_request_ipc 関数で ap_pass_brigade が失敗する。
-
[解決済み] "お知らせ 未定義変数"、"Notice: Notice: 未定義のインデックス", "Notice:未定義のインデックス", "Notice."。PHPを使用した「未定義のオフセット
-
[解決済み] ずっとUTF-8
-
[解決済み] Long-Polling、Websocket、Server-Sent Events (SSE)、Cometとは何ですか?
-
[解決済み] PHPで「Header already sent」エラーを修正する方法
-
[解決済み】PHPの'foreach'は実際どのように動作するのですか?
-
[解決済み] リファレンス - このシンボルはPHPで何を意味するのですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Xampp ローカルホスト/ダッシュボード
-
[解決済み】 $_SERVER['DOCUMENT_ROOT'] と $_SERVER['HTTP_HOST'] の違いについて]
-
[解決済み】ディレクトリ内のファイル数を数える PHP
-
[解決済み】未定義のメソッド mysqli_stmt::get_result を呼び出す。
-
[解決済み】mysqli_select_db()は、パラメータ1がmysqliであることを期待し、文字列が与えられる。
-
[解決済み】警告。数値でない値に遭遇しました
-
[解決済み] Uncaught SyntaxError: JSON の位置 1 に予期しないトークン o があります。
-
[解決済み】MySQLのカラム数が1行目の値数と一致しない【非公開
-
[解決済み] mysql_field_nameを新しいmysqliに変更します。
-
[解決済み] 新しい自分vs.新しい静止画