Как объединить два оператора IF в PHP
хорошо, я знаю, что это вопрос newb, но как я буду выполнять только если 2, если 1 (текст: тест появляется в строке данных.) Я попытался объединить эти два, но в конечном итоге со всеми видами проблем. Поэтому, если тест не показывает пропущенные циклы, если это так, то код регулярного выражения, который у меня есть, если 2 будет запущен.
$data = 'hello world "this is a test" last test';
// IF 1
if (stripos($data, 'test') !== false) {
}
// IF 2
if (preg_match('/"[^"]*"/i', $data, $regs)) {
$quote = str_word_count($regs[0], 1);
$data = str_replace($regs[0], '"'.implode(' ', $quote).'"', $data);
}
echo $data;
4 ответов
либо:
if (stripos($data, 'test') !== false) {
if (preg_match('/"[^"]*"/i', $data, $regs)) {
$quote = str_word_count($regs[0], 1);
$data = str_replace($regs[0], '"'.implode(' ', $quote).'"', $data);
}
}
или:
if (stripos($data, 'test') !== false && preg_match('/"[^"]*"/i', $data, $regs)) {
$quote = str_word_count($regs[0], 1);
$data = str_replace($regs[0], '"'.implode(' ', $quote).'"', $data);
}
оба делают то же самое.
The &&
оператор означает "и".
The ||
оператор означает "или".
вы имеете в виду, что хотите вложить одно в другое?
if (stripos($data, 'test') !== false)
{
if (preg_match('/"[^"]*"/i', $data, $regs))
{
$quote = str_word_count($regs[0], 1);
$data = str_replace($regs[0], '"'.implode(' ', $quote).'"', $data);
}
}
вы также можете изменить это, чтобы использовать &&
(что означает "и"):
if (stripos($data, 'test') !== false && preg_match('/"[^"]*"/i', $data, $regs)) {
$quote = str_word_count($regs[0], 1);
$data = str_replace($regs[0], '"'.implode(' ', $quote).'"', $data);
}
кроме того, ваш код использует !==
. Вы это имели в виду или имели в виду?--4-->? Я считаю, что они имеют разные значения - я знаю, что !=
означает "не равно", но я не уверен о !==
.
просто вложите свои операторы IF
if (stripos($data, 'test') !== false) {
if (preg_match('/"[^"]*"/i', $data, $regs)) {
$quote = str_word_count($regs[0], 1);
$data = str_replace($regs[0], '"'.implode(' ', $quote).'"', $data);
}
}
или я неправильно понял ваш вопрос?
говоря:" я пытался объединить два, но в конечном итоге со всеми видами проблем " довольно расплывчато. Сочетая как? Вложенных такой? Какие проблемы?
if (stripos($data, 'test') !== false) {
if (preg_match('/"[^"]*"/i', $data, $regs)) {
$quote = str_word_count($regs[0], 1);
$data = str_replace($regs[0], '"'.implode(' ', $quote).'"', $data);
}
}