Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/261.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP If语句被重写_Php_If Statement - Fatal编程技术网

PHP If语句被重写

PHP If语句被重写,php,if-statement,Php,If Statement,我正在做一个搜索页面,其中一个结果信息是位置。要搜索的内容之一是音乐专辑(没有位置信息) 如果你搜索“岩石”,你会看到上帝的和平-Pt。3-我的岩石与位置信息(这不是它应该的方式)。如果你搜索“我的石头”,你会注意到没有为同一条记录列出任何位置信息(应该是这样的)。这就像在另一个结果确实包含位置信息时,if语句被重写一样 音乐专辑中有Music01、Music02等的$row[“Number”]。。。所有其他记录都应该为空或数字(都应该小于Musicxx)。据我所知,如果不是音乐专辑,此代码应

我正在做一个搜索页面,其中一个结果信息是位置。要搜索的内容之一是音乐专辑(没有位置信息)

如果你搜索“岩石”,你会看到上帝的和平-Pt。3-我的岩石与位置信息(这不是它应该的方式)。如果你搜索“我的石头”,你会注意到没有为同一条记录列出任何位置信息(应该是这样的)。这就像在另一个结果确实包含位置信息时,if语句被重写一样

音乐专辑中有Music01、Music02等的
$row[“Number”]
。。。所有其他记录都应该为空或数字(都应该小于Musicxx)。据我所知,如果不是音乐专辑,此代码应该只显示位置信息

<?php
foreach ($stmt as $row) {
    if ($row["Number"] < "Music01") {
        if ($row["Location"]) $location = $row["Location"];
        else $location = "Faith Life Church";
        if ($row["City"]) $city = $row["City"];
        else if ($row["Sarasota"]) $city = "Sarasota";
        else $city = "Branson";
        if ($row["State"]) $state = $row["State"];
        else if ($row["Sarasota"]) $state = "FL";
        else $state = "MO";
    }
    if ($location) {
?>
<li><?php echo $location; ?></li>
<?php
    }
}
?>

  • 我是不是遗漏了什么


    JJ

    当您以这种方式比较字符串时,实际上是说任何字符串都不等于
    Music01
    。它可能会变得复杂。请参阅


    获取一个真正的整数,然后进行比较以获得更可预测的结果。

    以这种方式比较字符串时,实际上是说任何字符串都不等于
    Music01
    。这可能会变得复杂。请参阅


    获取一个真正的整数,然后进行比较以获得更可预测的结果。

    问题在于将字符串与小于
    的字符串进行比较。问题在于将字符串与小于
    的字符串进行比较是错误的。请先初始化变量,然后在需要时重写它们。这将导致事件—任何可能会丢失案例且未定义变量的异常情况

    $location = "Faith Life Church";
    $city = "Sarasota";
    /*...*/
    foreach ($stmt as $row) {
        foreach ($row as $variable => $value) {
            $variable = strtolower($variable); //Location => location
            $$variable = $value; //$location = $value
        }
    
    }
    

    除此之外,您正在将数字与字符串进行比较。从字符串中去掉数字,然后进行比较。

    您做错了。请先初始化变量,然后在需要时重写它们。这将防止出现任何异常情况,因为您可能会丢失一个案例,并且没有定义变量

    $location = "Faith Life Church";
    $city = "Sarasota";
    /*...*/
    foreach ($stmt as $row) {
        foreach ($row as $variable => $value) {
            $variable = strtolower($variable); //Location => location
            $$variable = $value; //$location = $value
        }
    
    }
    

    除此之外,您正在将数字与字符串进行比较。将数字从字符串中去掉,然后进行比较。

    不要忽略
    {curly brates}
    在您的条件语句中,这使它们很难读取,很可能是您的问题的根源。您试图将字符串作为数字进行比较似乎有些奇怪。您希望它如何确定字符串“Music02”是否小于字符串“Music01”你可能应该考虑比较实际的整数/数字等,使用一些其他的比较。<代码> StrpOS 可能是一个适当的函数来检查“音乐”在<代码> $ROC[[数] ] /代码> @ DunHaZZZ中的发生。我想我总是离开<代码> {}。
    当它仅仅是一个命令时就退出了。我可以看到可读性的要点,但它真的会影响代码执行吗?不要忽略
    {curly braces}
    在您的条件语句中,这使它们很难读取,很可能是您的问题的根源。您试图将字符串作为数字进行比较似乎有些奇怪。您希望它如何确定字符串“Music02”是否小于字符串“Music01”你可能应该考虑比较实际的整数/数字等,使用一些其他的比较。<代码> StrpOS 可能是一个适当的函数来检查“音乐”在<代码> $ROC[[数] ] /代码> @ DunHaZZZ中的发生。我想我总是离开<代码> {}。
    if($row[“Number”]&&$row[“Number”]<“Music01”)我可以看出可读性的要点,但它真的会影响代码的执行吗对于页面的另一部分,每次我测试它时,它都能正常工作。我想知道区别是什么。我向您保证,它没有按预期工作:)我做了两个测试,将任何字符串与
    进行比较总是会返回true,除非其中一个值为0,否则它将返回false。我对页面的另一部分使用
    if($row[“Number”]&&&$row[“Number”]<“Music01”)
    ,并且每次测试时它都正常工作。我想知道区别是什么。我向您保证它没有按照您的预期工作:)我已经做了两个测试,比较任何字符串与
    时,将始终返回true,除非其中一个值为0,在这种情况下,它将返回false。