За последние 24 часа нас посетили 36624 программиста и 1709 роботов. Сейчас ищут 856 программистов ...

Вызов функции из класса

Тема в разделе "PHP для новичков", создана пользователем Зингер, 19 сен 2017.

  1. Зингер

    Зингер Активный пользователь

    С нами с:
    20 июл 2017
    Сообщения:
    127
    Симпатии:
    7
    Здравствуйте. Помогите пож-та разобраться, совсем уже запутался.
    Вот код ("воду" убрал):
    PHP:
    1. <?
    2. class select_resultat_param{
    3.     public $result=array();
    4.  
    5.     public function poluchit_resultat(){      
    6.         $mysqli=new connected_class;                  
    7.         if(func_num_args()==0){
    8.             exit("Ошибка! Обращение к функции poluchit_resultat без параметров!");
    9.         }
    10. // ..............
    11.         $string_for_bind="";                        //Строка для определения типа в bind_param. Собирается в цикле.
    12.         for($i=1;$i<func_num_args();$i++){
    13.             $string_for_bind=$string_for_bind.$this->opredelit_tip_function($param(i-1));   //Ругается здесь        
    14.         }
    15.         echo $string_for_bind;
    16. // .............
    17.        
    18.     }
    19.     public function opredelit_tip_function($value){
    20. // ............
    21.         return $tip_value;
    22.     }
    23. }
    24. ?>
    Получаю ошибку
    Код (Text):
    1. Fatal error: Uncaught Error: Function name must be a string in ...
    Что я делаю не так?
     
  2. ADSoft

    ADSoft Старожил

    С нами с:
    12 мар 2007
    Сообщения:
    3.866
    Симпатии:
    753
    Адрес:
    Татарстан
    когда научатся читать по английски то....
    написано же - что имя функции должно быть строкой!
    У вас скорее всего в
    PHP:
    1.  public function opredelit_tip_function($value){
    2. // ............       - В ЭТОЙ воде .... используете $value  КАК имя функции.... а передаете число
    3. return $tip_value;  
    4. }
     
  3. Зингер

    Зингер Активный пользователь

    С нами с:
    20 июл 2017
    Сообщения:
    127
    Симпатии:
    7
    @ADSoft. Ладно, упрощу:
    PHP:
    1. public function opredelit_tip_function(){     //Убрал параметр вообще, если надо будет выловлю func_get_arg()
    2.         $tip_value="s";
    3.         return $tip_value;
    4.     }
    Проблема осталась.
     
  4. ADSoft

    ADSoft Старожил

    С нами с:
    12 мар 2007
    Сообщения:
    3.866
    Симпатии:
    753
    Адрес:
    Татарстан
    PHP:
    1. $param(i-1)
    порнография
    это массив
    PHP:
    1. $param[$i-1]
     
    Зингер и acso нравится это.
  5. Зингер

    Зингер Активный пользователь

    С нами с:
    20 июл 2017
    Сообщения:
    127
    Симпатии:
    7
    @ADSoft. Спасибо.

    Привычки со старого языка. Fuck.
     
  6. TeslaFeo

    TeslaFeo Старожил

    С нами с:
    9 мар 2016
    Сообщения:
    2.984
    Симпатии:
    759
    а в старом языке функция из класса не называлась методом?
     
  7. Зингер

    Зингер Активный пользователь

    С нами с:
    20 июл 2017
    Сообщения:
    127
    Симпатии:
    7
    Вызывалась.
    Здесь проблема то была в использовании квадратных, а не круглых скобок у массива.
     
  8. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.598
    Симпатии:
    1.764
    А в каком языке у массивов круглые скобки? Даже интересно стало
     
  9. Зингер

    Зингер Активный пользователь

    С нами с:
    20 июл 2017
    Сообщения:
    127
    Симпатии:
    7
    VFP - Visual FoxPro. "Сидел" на нем 16 лет.
     
    TeslaFeo нравится это.