0

クラス内のメソッドで簡単に使用できるように、クラス プロパティ内にグローバル変数を格納する方法があるかどうかを知りたいです。

例えば:

$variableGlobal = 30;

Class myClass{

    public $classProperty = global $variableGlobal;

    function myFunction(){
       $accessible = $this->classProperty;
}

これで、次のようにクラス関数でグローバル変数を呼び出すだけでグローバル変数を取得できることがわかりました。

function myfunction(){
    global $variableGlobal;
}

例1で必要なもののようなものが存在すると思いましたが、完全に間違っているか、正しいのですが、これに完全に間違った方法でアプローチしています。どんなアイデアも素晴らしいでしょうありがとう。

代わりに言及するのを忘れていましたが、グローバルを使用せずに、代わりに別のクラス関数の結果をクラス変数内に格納できれば幸いです

そのようです:

public $var = OtherClass::ClassFunction();
4

3 に答える 3

0

それを理解し、解決策を使用して別の質問から私の問題を解決しました:

PHP クラス: クラスのプロパティとしてのグローバル変数

于 2013-09-18T20:37:12.730 に答える
0

コンストラクト メソッドを使用して参照渡しすることができます。クラスをインスタンス化するときに値をコンストラクターに注入し、参照演算子 &を使用することで、いつでもグローバル変数にアクセスして現在の値を取得できます。

クラス内の $GLOBAL 構造体を介してグローバルにアクセスすることもできます。次の例を参照してください。

<?php

$variableGlobal = 30;

class myClass{

    public $classProperty;

    public function __construct(&$globalVar){
        $this->classProperty = &$globalVar;
    }

    public function myFunction(){
       $accessible = $this->classProperty;
        // do something interesting
        print "$accessible\n";
    }

    public function accessGlobal(){
        print $GLOBALS["variableGlobal"] . "\n";
    }

}


$thisClass = new myClass($variableGlobal);
$thisClass->myFunction();
$GLOBALS["variableGlobal"] = 44;
$thisClass->myFunction();
$variableGlobal = 23;
$thisClass->accessGlobal();

推奨読書

于 2013-09-18T20:25:19.423 に答える
0

必要な値は、変数名をキーとして使用する GLOBALS 変数のどこでも使用できる必要があります。

public $classProperty = GLOBALS[$variableGlobal]

ただし、不必要な結合を避けてテストできるようにするために、グローバルの値をクラスに渡すことをお勧めします。

于 2013-09-18T20:26:14.563 に答える