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

Нормально ли в PHP впервые определять переменную при вызове функции в списке аргументов? Ошибку вроде не выдает, но вдруг могут быть какие-то проблемы.
// $matches не определена
if( preg_match( '#^(abc)|(def)$#ui', $str $matches ) )
{
  ... // использование $matches
}
  • Вопрос задан
  • 182 просмотра
Пригласить эксперта
Ответы на вопрос 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);
?>


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

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

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