array_push - озадачен примером теста Zend

1

Во время обучения для теста Zend я столкнулся с этим кодом, который работает, но я не могу понять, почему данный два странных реквизита в array_push. strtolower и ucfirst используются там, где должны быть переменные. Я пропустил какую-то документацию?

<?php
    $str = 'MY STRING';

    $funcs = array();

    array_push($funcs, 'strtolower', 'ucfirst');

    foreach ($funcs as $func) {
        $str = $func($str);
    }

    if ($str == 'My string') {
        echo "Correct";
    }
    else {
        echo "Incorrect";
    }
?>
  • 0
    array_push — Push one or more elements onto the end of array Что неясно?
  • 0
    Продолжай изучать юного падавана.
Теги:
array-push
ucfirst
zend-certification

2 ответа

2
Лучший ответ

PHP поддерживает концепцию переменных функций. Это означает, что если к имени переменной добавлены скобки, PHP будет искать функцию с тем же именем, что и переменная, которая будет оцениваться, и попытается ее выполнить. Среди прочего, это можно использовать для реализации обратных вызовов, таблиц функций и т.д.

Источник: http://php.net/manual/en/functions.variable-functions.php

1

Увлекательная часть происходит здесь:

$str = $func($str);

Это переменная функция - функции, перечисленные в массиве (через array_push), вызывают на ввод строки.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню