如何在PHP中组合两个条件语句
好的,我知道这是一个新问题,但我如何只执行IF 2 IF 1(文本:test出现在数据字符串中)。我尝试将两者结合起来,但最终出现了各种各样的问题。所以,如果测试没有显示跳过的循环,那么将运行if 2中的正则表达式代码如何在PHP中组合两个条件语句,php,if-statement,Php,If Statement,好的,我知道这是一个新问题,但我如何只执行IF 2 IF 1(文本:test出现在数据字符串中)。我尝试将两者结合起来,但最终出现了各种各样的问题。所以,如果测试没有显示跳过的循环,那么将运行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 = '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;
你是说你想把一个嵌套在另一个里面
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语句即可
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);
}
}
或:
两者都做同样的事情。
&&
运算符表示“和”。
|
运算符的意思是“或”您是否尝试过逻辑运算符,特别是&
?这是行不通的,因为正则表达式总是真的,如果找到文本测试,我只需要执行正则表达式匹配。实际上,它仍然有效。计算机是智能的,只有在第一次检查失败时才尝试正则表达式。这叫做短路评估。在“if(a&&b)”中,如果a失败,b将不会运行。@Tesserex Ahhh,那么我应该继续坚持下去,谢谢你的澄清,下次我会更清楚的。:)
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);
}
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);
}
}