ログイン/ユーザー情報を含む既存のオブジェクトInformation
があります。私は別のクラスからこれにアクセスしたいと思います。私はグーグルと年齢を検索しようとした...運がない。 Information
オブジェクトが範囲外になるのはなぜですか?PHP:クラス内の既存のオブジェクトへのアクセス
class foo() {
function display() {
print_r($Information);
}
}
ログイン/ユーザー情報を含む既存のオブジェクトInformation
があります。私は別のクラスからこれにアクセスしたいと思います。私はグーグルと年齢を検索しようとした...運がない。 Information
オブジェクトが範囲外になるのはなぜですか?PHP:クラス内の既存のオブジェクトへのアクセス
class foo() {
function display() {
print_r($Information);
}
}
$情報がさまざまな理由で範囲外になる可能性があります。
まず、多分$情報はグローバルで、あなただけのグローバルキーワードでPHPを伝える必要があります:
class foo() {
function display() {
global $Information
print_r($Information);
}
}
第二に、多分$情報がfooインスタンスの一部ですか?この場合、PHPでは "$ this"というキーワードが必要です。
class foo() {
function display() {
print_r($this->Information);
}
}
第3に多分$情報がディスプレイの呼び出し元で作成され、/ fooは単に何も知りません。
function bar()
{
$Information = new $information;
$a = new Foo();
$a->display();
{
あなたが明示的に表示する$情報を渡すか、または各Fooのインスタンスのメンバ変数にする場合を除き
、表示がそれにアクセスすることはできません。表示は、(1)グローバル変数(2)インスタンス変数、(3)表示するパラメータ、(4)表示するローカル変数を見ることができます。 display()のスコープ内に他のものはありません。あなたの質問に答えるための編集 はい、それは最初にグローバルとして定義されたことを意味します。ないのように特定の機能、すなわち内:
グローバルを避けるための理由がたくさんあります。トピックにはたくさんの文章が書かれています。ここにはstackoverflow questionがあります。
ありがとうございます!私が解決した最初の方法は、情報のプロパティの1つをクラスの外に取得し、グローバル変数を使用してその変数にアクセスすることでした。あなたが気にしないなら、あなたが* $情報がグローバル*であると言うとき、それは何を意味するのですか?また、今後グローバルな使用を避けるべき主な理由はありますか? PS:グローバル*情報*をやりました。 – Mike