[解決済み] PHP のグローバル変数は悪い習慣と考えられていますか?もしそうなら、なぜですか?
2023-04-28 12:09:17
質問
function foo () {
global $var;
// rest of code
}
私の小さなPHPプロジェクトでは、通常、手続き的な方法をとります。私は通常、システム構成を格納する変数を持っており、 関数の中でこの変数にアクセスする必要がある場合、次のようにします。
global $var;
.
これは悪い習慣なのでしょうか?
どのように解決するのですか?
他の言語でグローバル変数について語られるとき、それはPHPでの意味とは異なるものです。それは、変数が 本当に PHPでは、変数はグローバルではないからです。典型的な PHP プログラムのスコープは、1 つの HTTP リクエストです。セッション変数は、一般的に多くの HTTP リクエストを含むので、実際には PHP のグローバル変数よりも広い範囲を持っています。
のようなメソッドでメンバ関数を呼び出すことがよくあります (常に?)。
preg_replace_callback()
のようにします。
preg_replace_callback('!pattern!', array($obj, 'method'), $str);
参照 コールバック を参照してください。
ポイントは、オブジェクトがPHPにボルトで固定され、ある意味厄介なことになったということです。
他の言語の標準や構造をPHPに適用することに過度にこだわらないようにしましょう。もう一つのよくある落とし穴は、オブジェクトモデルをすべてのものの上に貼り付けて、PHPを純粋なOOP言語にしようとすることです。
他のものと同様に、quot;global" 変数、手続き型コード、特定のフレームワークやOOPを使うのは、それが理にかなっていて、問題を解決し、書くべきコードの量を減らし、保守性や理解しやすさを高めるからであって、そうすべきだと思うからではありません。
関連
最新
-
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_network_getaddresses: getaddrinfo failed: 名前またはサービスが不明
-
[解決済み】PHPで空の値からデフォルトオブジェクトを作成する?
-
[解決済み】mysqli_result クラスのオブジェクトを文字列に変換できない
-
[解決済み] $wpdb->update または $wpdb->insert を実行すると、引用符の前にスラッシュが追加される
-
[解決済み】子テーマのCSSが親テーマをオーバーライドしない
-
[解決済み】PHP フェイタルエラー。未定義の関数mssql_connect()をコールしています。
-
[解決済み】Fatal error: mysqli_result 型のオブジェクトは使用できません [終了] 。
-
[解決済み] シングルトン・パターンの欠点やデメリットは何ですか?[クローズド]
-
[解決済み] 多次元配列の値によるソート方法
-
[解決済み] 関数内のPHPグローバル