Php If语句在内部还是外部

Php If语句在内部还是外部,php,Php,我试图弄清楚我是需要在for循环内部还是for循环外部执行此操作,但我想先检查它是否为空 echo "<ul>"; for($x = 0; $x <= (count($quotesArray)-1); $x++) { echo "<li>".stripslashes($quotesArray[$x]->quote)."</li>"; } echo "</ul>"; 它需要在循环之外,因为如果它是空的,并且您没有生成任何列表项,

我试图弄清楚我是需要在for循环内部还是for循环外部执行此操作,但我想先检查它是否为空

echo "<ul>";
for($x = 0; $x <= (count($quotesArray)-1); $x++)
{
    echo "<li>".stripslashes($quotesArray[$x]->quote)."</li>";
}
echo "</ul>";

它需要在循环之外,因为如果它是空的,并且您没有生成任何列表项,那么您就没有列表,因此您也不应该生成ul开始和结束标记,因为没有列表项的列表是无效的。

它需要在循环之外,因为如果它是空的,并且您没有生成任何列表项,那么您就没有列表,因此,您也不应该生成ul开始和结束标记,因为没有列表项的列表是无效的。

如果您根本不想要列表,那么您应该在回显第一个列表之前进行


好吧,如果你根本不想要这份清单,那么你应该在第一份清单发出回声之前完成


当您说要检查它是否为空时,您是指整个$quotesArray还是其中的一个值

如果您想检查数组中的值是否为空,则可以考虑这种方法:

echo '<ul>';
foreach ($quotesArray as $quote) {
    if ($quote) {
        echo '<li>' . stripslashes($quote) . '</li>';
    }
}
echo '</ul>';

当您说要检查它是否为空时,您是指整个$quotesArray还是其中的一个值

如果您想检查数组中的值是否为空,则可以考虑这种方法:

echo '<ul>';
foreach ($quotesArray as $quote) {
    if ($quote) {
        echo '<li>' . stripslashes($quote) . '</li>';
    }
}
echo '</ul>';

您可以同时运行这两个检查

if($quotesArray){
    echo '<ul>';
    foreach ($quotesArray as $quote) {
        if ($quote) {
            echo '<li>' . stripslashes($quote->quote) . '</li>';
        }
    }
    echo '</ul>';
}

您可以同时运行这两个检查

if($quotesArray){
    echo '<ul>';
    foreach ($quotesArray as $quote) {
        if ($quote) {
            echo '<li>' . stripslashes($quote->quote) . '</li>';
        }
    }
    echo '</ul>';
}
循环过程中的检查比较简单-它过滤所有值,称为:

如果您知道$quotesArray至少包含一个元素

编辑:

短版本,它还检查是否应生成列表,换句话说,数组在处理后是否至少包含一个元素:

$quotesArray = array_map('stripslashes', array_filter($quotesArray));
if (!empty($quotesArray)) {
    echo '<ul><li>'.implode('</li><li>', $quotesArray).'</li></ul>';
};
循环过程中的检查比较简单-它过滤所有值,称为:

如果您知道$quotesArray至少包含一个元素

编辑:

短版本,它还检查是否应生成列表,换句话说,数组在处理后是否至少包含一个元素:

$quotesArray = array_map('stripslashes', array_filter($quotesArray));
if (!empty($quotesArray)) {
    echo '<ul><li>'.implode('</li><li>', $quotesArray).'</li></ul>';
};


你想检查什么是空的吗$quotesArray,或$quotesArray[$x]->quote?你真的应该用foreach来代替:foreach$quotesArray作为$quote请澄清你的问题。现在还不清楚你到底想要实现什么。还有:你的PHP版本是什么?是否大于5.3?是否要检查什么是空的$quotesArray,或$quotesArray[$x]->quote?你真的应该用foreach来代替:foreach$quotesArray作为$quote请澄清你的问题。现在还不清楚你到底想要实现什么。还有:你的PHP版本是什么?是否大于5.3?除非他想要检查的是项目是否为空。然后它进入循环。除非他想检查的是项目是否为空。然后它进入循环。你不需要$key,它实际上占用了更多的内存,而且不必要。谢谢-很高兴知道我做得不对,认为需要分离。编辑的版本看起来正确吗?你不需要$key,因为它实际上占用了更多的内存,而且不必要。谢谢-很高兴知道我做得不正确,认为需要分离。编辑的版本看起来正确吗?非常确定这些标记需要进入条件中,或者php/html知道忽略它们吗?考虑到带宽消耗和标记的整体结构,您是对的。但是,标签本身不会呈现任何内容,除非样式设置为这样做。不过这是个好主意。我已经编辑了我的答案非常确定这些标记需要放在条件中,或者php/html知道忽略它们吗?考虑到带宽消耗和标记的整体结构,您是对的。但是,标签本身不会呈现任何内容,除非样式设置为这样做。不过这是个好主意。我已经编辑了我的答案@杰夫戴维森:我不知道你的意思,但如果你的意思是,如果数组是空的,你不想让它生成任何HTML,那么请看我更新的答案-如果数组是空的,它现在应该不会生成任何东西。哎哟,我的声誉。非常巧妙的解决方案-一定要使用它。@cantera25:谢谢。当PHP版本至少为5.3时,由于能够使用这些代码并将其作为回调传递,这样的代码可以更加流畅。@JeffDavidson:我不知道你的意思,但如果你想让它在数组为空时不生成任何HTML,然后请看我更新的答案-如果处理后数组为空,它现在应该不会生成任何内容。哎哟,我的声誉。非常巧妙的解决方案-一定要使用它。@cantera25:谢谢。当PHP版本至少为5.3时,由于能够使用它们并将其作为回调传递,这样的代码可以更加流畅。