#php
#php
Вопрос:
У меня есть много переменных, которые я хочу проверить с помощью одного и того же шаблона, они выглядят следующим образом:
$pattern = "/[$()`]/"
$one
$two
$three
etc...
Вместо того, чтобы писать это так:
if (!preg_match($pattern, $one) amp;amp; !preg_match($pattern, $two) amp;amp; !preg_match($pattern, $three)) {
// do stuff
}
Есть ли более простой способ проверки всех этих переменных одновременно?
Ответ №1:
<?php
$array= array($one, $two, $three);
if (in_array("$()`", $array))
{
echo "Match found";
}
else
{
echo "Match not found";
}
?>
Я надеюсь, что это сработает для вас
Комментарии:
1. Вы можете передать все свои значения в массив и только один раз проверить это в массиве, если ваш шаблон в условии массива будет выполняться, иначе нет. Я надеюсь, вы поняли, что я пытаюсь сказать.
2. Но что, если я хочу использовать регулярное выражение вместо обычного сопоставления?
3. я только реализовал эту функцию в своем носителе, но дайте мне немного времени, я проведу исследования и разработки и дам вам обратную связь.
Ответ №2:
Что насчет этого:
$tests = array($one, $two, $three);
$tests_count = count($tests);
if (count(preg_grep('/[$()`]/', $tests, PREG_GREP_INVERT)) == $tests_count) {
// some stuff
}
Если вы хотите что-то сделать, если какой-либо из тестов завершается неудачей, это может быть:
count(preg_grep('/[$()`]/', $tests, PREG_GREP_INVERT)) > 0)