Нормально ли в 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);
?>


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

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

Войти через центр авторизации
Похожие вопросы