2013-04-01 5 views
0
 class My_class { 

     public function __call($name, $arguments) { 

      echo "Called method ".$name.", arguments count is: ".count($arguments); 

     } 


    } 

    $obj = new My_class(); 

    $arr = array(1,2,3); 

    $obj->blabla($arr); 

результат: Called method blabla, arguments count is: 1недоразумению на PHP волшебный метод __call()

Вопрос: почему рассчитывать аргументы является 1 и не 3? где я ошибаюсь?

+3

Поскольку вы передаете один параметр - массив. Если вы хотите три - вызовите его с помощью '$ obj-> blabla (1,2,3)' – J0HN

+0

@ J0HN Спасибо, (но мне нужно больше символов для публикации этого) – RIKI

ответ

0

Сценарий не учитывает элементы в массиве, только номер аргумента, и единственным аргументом является $ arr.

Вы должны сосчитать предметы с помощью:

count($arr); 
Смежные вопросы