как вызвать функцию на preg match php коде - PullRequest
0 голосов
/ 15 апреля 2020

у меня есть код ..

<?php
function word() 
{
     $arr = array("/c/","/b/","/c/");
     echo $arr[array_rand($arr)];
}
$text = "a";
if(preg_match("$word()", $text)) {
     $result = "found";
}else{
     $result = "not found";
}
echo $result;
?>

как вызвать функцию word(); в preg_match.
Я хочу случайно найти слова в preg_match.
Я пытался, но это не сработало.
как исправить этот код.
Спасибо

1 Ответ

1 голос
/ 15 апреля 2020

Если вы сделаете вашу функцию word() возвращающей случайную строку вместо ее отображения, вы можете использовать ее как любое значение, вызывая функцию.

function word() {
    $arr = array("/c/","/b/","/c/");
    return $arr[array_rand($arr)];
}

if( preg_match(word(), $text) ) {
    $result = "found";
}
else {
    $result = "not found";
}

echo $result;

Если это делает ее более понятной, это то же самое, что сохранить результат из функции в переменной и использовать его.

Все они одинаковы:

// Writing the pattern in place.
preg_match("/a/", $text);

// Storing it in a variable before use.
$to_match = "/a/";
preg_match($to_match, $text);

// Storing it in a variable where the value is returned from a function.
$to_match = word();
preg_match($to_match, $text);

// Using a function directly in the call to `preg_match`.
preg_match(word(), $text);
...