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

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

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


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

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

Похожие вопросы
FoodSoul Калининград
от 180 000 до 250 000 ₽
IT-Spirit Москва
от 230 000 до 320 000 ₽
от 200 000 до 290 000 ₽