-4

関数 abc(); から
1.「クラス A 内の関数 a」を呼び出すにはどうすればよいですか? ($this->a(); はエラーを返します)?
2. パブリック変数 $bbb にアクセスするにはどうすればよいですか?

(- 構造が悪いのは分かっているが、'require_once' の部分が動的など…)

    class AAA extends CI_Controller 
    {
        public $bbb;

    function ccc ()
    {
    }

    function index ()
    {
        require_once '1.php';
    }
    }

// 1.php で

function abc ()
{
 // how do i call method a of Class A?
 $this->ccc(); // returns error - Using $this when not in object context in ...
$this->bbb; //
}

abc(); // etc etc
4

2 に答える 2

2

あなたがやろうとしているrequire()ことは、それが行うように設計されておらず、うまくいかないことです。

ただし、インクルード ファイルで定義されているすべての関数とクラスには、グローバル スコープがあります。

http://us.php.net/manual/en/function.include.phpにも適用されrequire()ます。

abc()はグローバル スコープで定義されるため、使用に必要なオブジェクト コンテキストがありません$this

于 2012-05-29T06:41:08.803 に答える
1

琥珀が述べたようrequireに、ここでは役に立ちません。関数への参照を渡すことができませんでしたか?

function abc (&$ref)
{
  $ref->ccc();
  $ref->bbb;
}

通常はクラスの外でそれを必要とし、それから単に呼び出します

function index ()
{
  abc($this);
}

うまくいくかどうかはわかりませんが、試してみる価値はあると思います

于 2012-05-29T06:40:06.297 に答える