[解決済み] PHP 5: const と static の違い
2022-04-20 10:49:03
質問
PHP 5 では、以下のような違いがあります。
const
と
static
?
それぞれどのような場合に適切か?また、どのような役割で
public
,
protected
と
private
があれば教えてください。
解決方法は?
クラスのコンテキストでは、静的変数は(オブジェクトではなく)クラススコープ上にありますが、constとは異なり、その値を変更することができます。
class ClassName {
static $my_var = 10; /* defaults to public unless otherwise specified */
const MY_CONST = 5;
}
echo ClassName::$my_var; // returns 10
echo ClassName::MY_CONST; // returns 5
ClassName::$my_var = 20; // now equals 20
ClassName::MY_CONST = 20; // error! won't work.
public, protected, private は const (常に public) の観点からは無関係で、static 変数を含むクラス変数にのみ有効です。
- public static 変数は、ClassName::$variable を介してどこにでもアクセスすることができます。
- protected static 変数は、定義クラスまたは拡張クラスから ClassName::$variable を介してアクセスすることができます。
- private static 変数は、ClassName::$variable を介して定義クラスによってのみアクセス可能です。
編集部:重要なのは PHP 7.1.0 からは、クラス定数の可視性を指定する機能が追加されました。 .
関連
-
[解決済み】/var/www/htmlとは何ですか?[クローズド]
-
[解決済み] PHP 未定義関数への呼び出し
-
[解決済み] どのような場合に '$this' よりも 'self' を使うべきですか?
-
[解決済み] const int*、const int * const、int const *の違いは何ですか?
-
[解決済み] C#のconstとreadonlyの違いは何ですか?
-
[解決済み] Static readonly」対「const」。
-
[解決済み] PHPでパスワードをハッシュ化するためにbcryptを使用するにはどうすればよいですか?
-
[解決済み】PHPの'foreach'は実際どのように動作するのですか?
-
[解決済み] リファレンス - このシンボルはPHPで何を意味するのですか?
-
[解決済み】PHP|define() vs. const.
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] [Solved] Fatal error: メンバ関数prepare()のNULLでの呼び出し
-
[解決済み】Fatal error: 未定義の関数 sqlsrv_connect() を呼び出した。
-
[解決済み】空の配列要素を削除する
-
[解決済み】++と*+の意味は何ですか?
-
[解決済み】DateTimeクラスのオブジェクトを文字列に変換できない
-
[解決済み】/var/www/htmlとは何ですか?[クローズド]
-
[解決済み】mysqli::query(): mysqli をフェッチできない
-
[解決済み] 新しい自分vs.新しい静止画
-
[解決済み】PHP5でSingletonデザインパターンを作成する
-
[解決済み] PHPのself::$barとstatic::$barの違いは何ですか?