Задать вопрос

Нормально ли в PHP определять переменную при вызове функции в списке аргументов?

Нормально ли в PHP впервые определять переменную при вызове функции в списке аргументов? Ошибку вроде не выдает, но вдруг могут быть какие-то проблемы.
// $matches не определена
if( preg_match( '#^(abc)|(def)$#ui', $str $matches ) )
{
  ... // использование $matches
}
  • Вопрос задан
  • 185 просмотров
Подписаться 2 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Skillbox
    Веб-разработчик на PHP
    9 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Stepik
    Язык программирования PHP
    1 неделя
    Далее
Пригласить эксперта
Ответы на вопрос 2
FanatPHP
@FanatPHP
Чебуратор тега РНР
Нет ненормально, но в крайних случаях это применяется.
В данном случае это способ вернуть два разных значения из функции.

Но по возможности такого подхода следует избегать.

И чисто технически это не определение переменной при вызове, а передача переменной по ссылке.
Ответ написан
Newto
@Newto
В данном случае определять переменную $matches не нужно. Если вы посмотрите на документацию к функции preg_match (https://www.php.net/manual/ru/function.preg-match.php) то увидите валидный пример кода:

<?php
preg_match('/(foo)(bar)(baz)/', 'foobarbaz', $matches, PREG_OFFSET_CAPTURE);
print_r($matches);
?>


Эта переменная возникает из использования данной функции и пытаться определять её заранее не нужно. Если, конечно, этого не требуют особенности вашей программы.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы