назначить публичную функцию переменной

Как я могу назначить общедоступную функцию переменной PHP, у меня есть этот класс:

class FajrfilesExecution {

    public function fajrExecution($id=null){
       $arr = [
                [4]=>[
                       'name'=>'ali',
                      ],
                [8]=>[
                       'name'=>'mos',
                      ],
                [5]=>[
                       'name'=>'heliya',
                      ],
              ];
       return $arr[$id]['name'];
    }
}

и где-то еще я должен использовать эту публичную функцию несколько раз:

<div id = <?= FajrfilesExecution::fajrExecution(4)  ?>>
         <div id = <?= FajrfilesExecution::fajrExecution(8)  ?>>
  .....

как я могу назначить эту публичную функцию переменной и использовать ее. что-то вроде этого :

<?php  $a = FajrfilesExecution::fajrExecution()?>

<div id = <?= $a(4)  ?>>
         <div id = <?= $a(2)  ?>>
  .....

person Mostafa Abedi    schedule 16.08.2017    source источник
comment
как я могу назначить эту общедоступную функцию переменной и использовать ее. что-то вроде этого Вы уже это сделали, не так ли?   -  person B001ᛦ    schedule 16.08.2017
comment
var_dump($a[0]);умереть; уже НУЛЕВОЕ   -  person Mostafa Abedi    schedule 16.08.2017


Ответы (1)


У вас есть несколько незначительных синтаксических ошибок - я исправил ваш код ниже.

class FajrfilesExecution {
    public static function fajrExecution($id=null){
        $arr = ['a','b','c'];
        return $arr;
    }
}

$a = FajrfilesExecution::fajrExecution();
?>

<div id="<?php echo $a[0]; ?>">
<div id="<?php echo $a[2]; ?>">
  • return $arr[]; не возвращает массив. Вы просто хотите $return $arr;
  • Вы не вызвали echo для отображения вывода. <?php $a[0] ?> сам по себе ничего не делает. Вы также можете использовать <?= $a[0]; /> как более короткую версию.
  • Я пометил функцию fajrExecution как статическую, поскольку именно так вы ее использовали.

См. https://eval.in/846061 для демонстрации.

person iainn    schedule 16.08.2017
comment
спасибо @iainn, я упростил вопрос, точный вопрос такой, как я отредактировал, пожалуйста, посмотрите. - person Mostafa Abedi; 16.08.2017