ホームページ >バックエンド開発 >PHPチュートリアル >php7 - PHP グローバル変数は Composer を使用して自動的にロードされるため、使用できません

php7 - PHP グローバル変数は Composer を使用して自動的にロードされるため、使用できません

WBOY
WBOYオリジナル
2016-07-06 13:53:491158ブラウズ

これは、元のプログラマが構成ファイルでデータベース インスタンスを直接インスタンス化した歴史的なレガシー コードです。

$db = 新しい db();

このようなコードは通常require/includeでインクルードすれば問題ありませんが、判定する際は$GLOBALS['db']を使って判定します。

ファイルが多いので、一部のモデルを再利用したいのですが、包含関係上、一つずつ試してからインクルードする必要があるので、composerを使用しました。自動的にロードします。コンポーザーが自動的にロードしたファイル $GLOBALS を使用しました。['db'] は空です。通常、このグローバル パラメーターは使用しないので、状況はわかりません。

私はこの問題を自分で解決しました。 $db = new db() を $GLOBALS['db'] に変更するだけです。つまり、値を明示的に割り当てます。

手動でインクルードした$dbは存在するのに、composerで自動ロードした$dbが消えてしまう理由がわかりません。ご教示ください。

返信内容:

これは、元のプログラマが構成ファイルでデータベース インスタンスを直接インスタンス化した歴史的なレガシー コードです。

$db = 新しい db();

この種のコードは通常require/includeでインクルードされていれば、判定の際は$GLOBALS['db']を使って判定します。

ファイルが多いので、一部のモデルを再利用したいのですが、包含関係上、一つずつ試してからインクルードする必要があるので、composerを使用しました。自動的にロードします。コンポーザーが自動的にロードしたファイル $GLOBALS を使用しました。['db'] は通常は使用しないので、何が起こっているのかわかりません。

私はこの問題を自分で解決しました。 $db = new db() を $GLOBALS['db'] に変更するだけです。つまり、値を明示的に割り当てます。

手動でインクルードした$dbは存在するのに、composerで自動ロードした$dbが消えてしまう理由がわかりません。ご教示ください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。