3

グローバルは5.4.0で減価償却されるというPHP Webサイトのページに出くわしました。$MyFormPost が $_POST['MyFormPost'] と $_GET['MyFormPost'] のグローバル変数であることは理解していますが、5.4.0 で減価償却されたと見なされる場合、私たちの Web サイトが開発された方法かどうか疑問に思っています。

以下にコンテンツが掲載されているクラスがあり、アプリケーションからすべての共通クラスにアクセスできます。したがって、ユーザーのブラウザ情報にアクセスして、他のクラスまたはファイルで使用しているモバイル デバイスを確認するには、$gb->BrowserData->get_MobileDevice() を呼び出すだけです。サイトの構築方法を切り替える必要がありますか?

$gb = new GlobalData;

global $BrowserData;
$BrowserData = new BrowserType();

if ($gb->BrowserData->get_MobileDevice()=='iPhone') {

}

GlobalData.class.php

<?php
class GlobalData {
        public function __get($name) {
            if (isset($GLOBALS[$name]))
                return $GLOBALS[$name];
        }
}
?>
4

1 に答える 1

3

そうではありませんregister_globals。心配する必要はありません。PHP 4.2 以降はデフォルトでオフになっており、そろそろ削除される頃です。これが実際に何をするかの説明ですregister_globals- 基本的にすべてのリクエスト変数をグローバル変数に投げます。非常に悪い考えです。

global $somevariable;使用している種類のクラスを使用する代わりに、現在のスコープにグローバル変数を持ち込むために を使用することを引き続きお勧めします。

于 2012-04-14T23:17:47.930 に答える