Есть ли в PHP ограничение по длине имени переменной или имени функции? - PullRequest
33 голосов
/ 30 декабря 2010

Если бы я хотел написать действительно длинное имя переменной вроде:

$this_is_my_variable_that_does_something_in_the_following_function_and_provides_some_information_with_which_the_function_relies_upon_to_do_all_the_work_it_needs = null;

это будет работать? тот же вопрос для имен функций / методов

Ответы [ 5 ]

207 голосов
/ 30 декабря 2010

Как правило, такое ограничение накладывается угрозой насилия со стороны других людей, которые взаимодействуют с вашим кодом.

93 голосов
/ 30 декабря 2010

Из документации :

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

То же самое относится к именам функций, как указано здесь .

11 голосов
/ 14 сентября 2015

Ограничение длины имени переменной / функции / метода / класса не существует.

В комментариях выше указано, что это свойство не должно использоваться. Это верно только в том случае, если речь идет о читабельном / понятном для человека коде.

Однако, это чрезвычайно полезная функция PHP, которая очень хорошо используется во многих очень популярных проектах, таких как Twig для каждого примера, который генерирует классы, пример (фрагмент):

class __TwigTemplate_9601167421099bbb502d119e674fed3fb71769eef256903648c9c2b4b6faa436 extends \Twig_Template {

    protected function doDisplay(array $context, array $blocks = array())
    {
        $__internal_0abebc74dd811fd7b4cfa4c6a2fdf870d7723c04e8daf6926b04914d6644935f = $this->env->getExtension("native_profiler");    
    }

}

У меня была возможность извлечь выгоду из того же имущества, что и в моих проектах.

В заключение:

  • Нет ограничений на длину имени var / func / class
  • Это чрезвычайно полезная языковая функция
  • Существует контекст для его использования, конечно, это не для каждодневной работы
3 голосов
/ 30 декабря 2010

PHP не устанавливает ограничения по длине для своих идентификаторов.

Тем не менее, я не уверен, почему кто-то захочет создать имя переменной длиной 160 символов.Я надеюсь, что это гипотетический вопрос.

3 голосов
/ 30 декабря 2010

Нет ограничений - но это настоятельно не рекомендуется, так как создает нечитаемый код ...

...