PDA

View Full Version : دلیل این ارور چیه؟ (مربوط به MVC)



HttpRequest
سه شنبه 20 مرداد 1394, 22:40 عصر
سلام
من دارم mvc یاد می گیرم.یه متد زیر نگاه کنید.این رو در فایل bootstrap نوشتم.


public function loadMethod(){
if(method_exists($this->Controller, $this->url[1])){
$count = count($this->url);
switch ($count){
case 2:
$this->Controller{$this->url[1]}();
break;
case 3:
$this->Controller{$this->url[1]}($this->url[2]);
break;
case 4:
$this->Controller{$this->url[1]($this->url[2], $this->url[3])};
break;
}
}
else{
$this->errorMessage(1);
}
}


برنامه رو با url درست که اجرا میکنم وارد شرط بالا میشه که وجود داشتن متد رو بررسی می کنه.وارد سوئیج میشه و وارد case 3 میشه اما متد رو اجرا نم یکنه.این ارور رو میده



Fatal error: Cannot use object of type index as array in D:\wamp\www\mvc\libs\Bootstrap.php on line 42


همه چی درسته ظاهرا ولی نمی دونم چرا جواب نمیده.کسی می تونه کمک کنه؟
ممنون

iliya_s20
چهارشنبه 21 مرداد 1394, 11:41 صبح
public function loadMethod(){ $length = count($this->_url);

// Make sure the method we are calling exists
if ($length > 1) {
if (!method_exists($this->_controller, $this->_url[1])) {
$this->_error();
}
}
switch ($length) {
case 4:
//Controller->Method(Param1, Param2)
$this->_controller->{$this->_url[1]}($this->_url[2], $this->_url[3]);
break;

case 3:
//Controller->Method(Param1)
$this->_controller->{$this->_url[1]}($this->_url[2]);
break;

case 2:
//Controller->Method()
$this->_controller->{$this->_url[1]}();
break;

default:
$this->_controller->index();
break;
}
}