[解決済み] PHP - オブジェクトの静的配列を定義する
2022-02-07 04:44:02
質問
PHPでクラス内のオブジェクトの静的配列を初期化することは可能ですか?例えば、以下のようなことができます。
class myclass {
public static $blah = array("test1", "test2", "test3");
}
を実行すると
class myclass {
public static $blah2 = array(
&new myotherclass(),
&new myotherclass(),
&new myotherclass()
);
}
ここで、myotherclass は myclass のすぐ上に定義されています。 しかし、それはエラーを投げる。それを達成する方法はありますか?
どのように解決するのですか?
いいえ。 から http://php.net/manual/en/language.oop5.static.php :
他の PHP スタティック変数と同様に、スタティックプロパティは、以下のようにのみ使用できます。 リテラルまたは定数を使用して初期化します。式は使用できません。 つまり、スタティックプロパティを整数値や配列で初期化することは可能ですが、式で初期化することはできません。 (例えば)他の変数や(例えば) 関数の戻り値、またはオブジェクトを指定します。
私なら、プロパティを初期化して
null
そして、アクセッサーメソッドをプライベートにして、最初に呼ばれたときにアクセッサーが本当の初期化を行うようにします。以下はその例です。
class myclass {
private static $blah2 = null;
public static function blah2() {
if (self::$blah2 == null) {
self::$blah2 = array( new myotherclass(),
new myotherclass(),
new myotherclass());
}
return self::$blah2;
}
}
print_r(myclass::blah2());
関連
-
[解決済み] [Solved] Fatal error: メンバ関数prepare()のNULLでの呼び出し
-
[解決済み] オートロードとは何ですか; spl_autoload、__autoload、spl_autoload_register はどのように使うのですか?
-
[解決済み] 配列から特定の項目を削除するにはどうすればよいですか?
-
[解決済み] JavaScript で配列に値が含まれているかどうかを確認するにはどうすればよいですか?
-
[解決済み] 配列からArrayListを作成する
-
[解決済み] 配列に特定のインデックスで項目を挿入する方法 (JavaScript)
-
[解決済み] PHPで配列から要素を削除する
-
[解決済み】オブジェクトの配列を文字列のプロパティ値でソートする
-
[解決済み】オブジェクトからプロパティを削除する(JavaScript)
-
[解決済み] リファレンス - このシンボルは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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】PHP - 構文エラー、予期しないT_CONSTANT_ECAPSED_STRING [閉店].
-
[解決済み] [Solved] Fatal error: メンバ関数bind_param()のbooleanに対する呼び出し [重複] [重複
-
[解決済み】phpのob_start()の使い道は?
-
[解決済み] SAJAXは死んだか?何を置き換えるべきか?
-
[解決済み】DateTimeクラスのオブジェクトを文字列に変換できない
-
[解決済み] SQLSTATE[HY093]: 無効なパラメータ番号: パラメータが定義されていません
-
[解決済み】未定義のメソッド mysqli_stmt::get_result を呼び出す。
-
[解決済み】未定義の関数mysql_query()をLoginで呼び出す【重複
-
[解決済み] 警告:mysqli_fetch_array()は、パラメータ1がmysqli_resultであることを期待する、オブジェクトはで指定された。
-
[解決済み] SSLエラー SSL3_GET_SERVER_CERTIFICATE:証明書の検証に失敗しました。