如何在PHP中组合两个IF语句

Rya*_*per 9 php if-statement

好吧,我知道这是一个新问题,但如果IF 1(文本:测试出现在数据字符串中),我将如何才能执行IF 2.我尝试将两者结合起来但最终遇到各种各样的问题.因此,如果测试没有显示跳过的循环,如果它,那么我将在IF 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;
Run Code Online (Sandbox Code Playgroud)

Ric*_*haw 13

或者:

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);
    }
}
Run Code Online (Sandbox Code Playgroud)

要么:

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);
}
Run Code Online (Sandbox Code Playgroud)

两者都做同样的事情.该&&运营商的意思是"和".该||运营商表示"或".


Fru*_*ner 5

你的意思是你想把一个嵌套在另一个里面?

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);
  }

}
Run Code Online (Sandbox Code Playgroud)

您也可以将其更改为使用&&(这意味着“和”):

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);
}
Run Code Online (Sandbox Code Playgroud)

此外,您的代码使用!==. 这是你的意思还是你的意思!=?我相信它们有不同的含义——我知道这!=意味着“不相等”,但我不确定!==.