Yii プロジェクトに追加しようとしているレガシー コードに問題があります。
それはグローバル変数と関係があります。代わりにパラメーターとして渡す必要があることはよく知っていますが、この古いコードは他のプロジェクトの書き換えで使用されているため、実際にはオプションではありません。
$testVar = '123';
function testOutput() {
global $testVar;
var_dump($testVar);
}
testOutput();
このファイルをプレーンphpファイルに含めると、動作して出力されます
string '123' (length=3)
しかし、このファイルを Yii コントローラーまたはテンプレートに含めると、これが出力されます
null
この問題を検索しようとしましたが、グローバル変数を誤って使用している人々に関する結果がたくさん得られます。実際には Yii の問題ではなく、Yii が設定している php_ini 設定である可能性が高いと確信していますが、これを説明するコードまたは Yii ドキュメントを検索しても何も見つかりません。
この例は、最初のコード ブロックでファイルを作成し、それを Yii テンプレートまたはコントローラーに含めるだけでテストできます。きれいな例の Yii プロジェクトでテストしました。
これは Yii 固有の問題だけではないと感じているので、この質問に Yii のタグを付けて、これを理解する機会を損なわなかったことを願っています。
どんな洞察も大歓迎です。