私は奇妙な状況に直面しており、それを理解するのを手伝ってくれるかもしれません.
$object = array('controller' => 'frontend_shop', 'method' => 'category');
include_once(PATH.'controllers/'.$object['controller'].'.php');
$controller = new $object['controller']($object);
class Frontend_shop extends Controller {
public $controller;
public function __construct($object)
{
// Works
$this->$object['method']();
//Don´t work
$this->controller = $object;
$this->controller['method']();
}
public function category()
{
echo 'hello';
}
}
これは機能し、「こんにちは」が表示されます
$this->$object['method']();
しかし、この配列を次のようなクラス変数に割り当てると:
$this->controller = $object;
$this->controller['method']();
私は得る:
Fatal error: Call to undefined function category() in /usr/lib/app/application/controllers/frontend_shop.php on line 10
もちろん、最初の方法を使用できることは知っていますが、クラス変数の方法で間違っている可能性があることを説明できるかもしれません。ありがとう