[英]How to combine two conditional statements in PHP
好的,我知道這是一個新問題,但是如果 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;
任何一個:
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);
}
}
您也可以將其更改為使用&&
(這意味着“和”):
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 語句
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);
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.