preg_match () и preg_match_all () возвращают количество найденных совпадений или false в случае ошибки.Однако это означает, что он вернет 0, если совпадений не найдено, поэтому проверка явно на ложь, а затем попытка перебрать пустой набор все еще будет проблематичной.
Я обычно проверяю на ложь, затем проверяю снова на количество совпадений передзацикливание результатов.Что-то с эффектом:
$match = preg_match_all($pattern, $subject, $matches);
if($match !== false)
{
if(count($matches) > 0)
{
foreach($matches as $k=>$v)
{
...
}
}
else
{
user_error('Sorry, no matches found');
}
}
else
{
die('Match error');
}