(! boş) sorunları varsa

5 Cevap

Bu ne yanlış? In kod $ forwardformat boş boş değil, ama $ forwardformat boş ise "else" kod çalıştırın değilse "ifadesi ise" çalışır. Herhangi bir fikir?

while ($row = mysql_fetch_array($forwardresult)) {
    $forward = $row["id"];
    $forwardformat = str_replace(" ","",$forward);

    if (!empty($forwardformat)) {
        echo 'Exploring moves us <a href="casestudy.php?id=';
        echo $forwardformat;
        echo '">forward</a>';
    }
    else {
        echo "forward";
    }
}

5 Cevap

boş boş düşünün şeyin listesini görmek

Var olmayan bir boş ve sıfır değeri varsa YANLIŞ döndürür.

The following things are considered to be empty: 

■"" (an empty string)
■0 (0 as an integer)
■"0" (0 as a string)
■NULL
■FALSE
■array() (an empty array)
■var $var; (a variable declared, but without a value in a class)
  1. $ Forwardformat boş değil eğer gerçekten varsa deyimi girmelisiniz.

  2. Boşsa else deyimi hakkında, sadece oraya gider. Yani o $ forwardformat boş değil düşünmek zorunda kalabilirsiniz. Beyaz alanlar belki? Bundan emin olmak için sınırları arasında ileri $ echo çalışın.

Senin sorunun bu hat olduğunu düşünüyorum:


$forwardformat = str_replace(" ","",$forward);

Bu yalnızca uzay karakteriyle eşleşir. Sekme, Newline vb değiştirilir değildir (ve sonuç yankılanan zaman gerçekten (html-) çıktıda görünmüyor. Böylece i deneyin, tavsiye


$forwardformat = preg_replace('/\s+/','',$forward);

HTH

Argelbargel

$ Forwardformat içeriğini araştırmak için bu deneyin

  
    while ($row = mysql_fetch_array($forwardresult)) {  
        $forward = $row["id"];  
        $forwardformat = str_replace(" ","",$forward);  
        if (!empty($forwardformat)) {  
            echo 'Exploring moves us <a href="casestudy.php?id='. $forwardformat .'">forward</a>';  
            //DEBUG
            echo "<textarea>";
            var_dump($forwardformat);
            echo "</textarea>";
        }  
        else {  
            echo "forward";  
        }  
    }  

Eğer db de (ortak UTF-8 kodlaması ile) gibi çoklu-bayt dize veri var ise ...

) (Strlen göz atın ... 0 onun gerçekten boş olmadığını dönmek hangi, strlen () ile karşılaştırın.