Hata Mesajı fonksiyonu

4 Cevap

Ben bir işleve mesajları eklemek çalışıyorum

function addMessage($item) {
     if ($result) {
      $message =  '<p class="ok">
                    <span> Item added </span>
                   </p>
                  ';
                  header("Refresh: 2; url=?page=$item");
        }
        else{
            $message = '<p class=not><span>There is an error blah blah</span></p>';
        }
        return $message;

}

Bunu kullandığınızda: addMessage ('içeriği') sadece ikinci duruma döner. Bunu nasıl düzeltebilirim?

4 Cevap

Hi jasmine

Eğer işlev içinde $result, yorgandan ya da ne zaman işlevini (like unicornaddict Diğer bir deyişle tarafından belirtilen) aramak için bir değer atanmış değil, çünkü işlevi her zaman ikinci koşulu döndürür.

Kodunuzu muhtemelen istediğiniz şekilde çalışan almak için, fonksiyon bu gibi olmalıdır:

function addMessage($item, $result) {
     if ($result) { // It will return this condition, case $result has any value assigned and is different from FALSE (boolean)
      $message =  '<p class="ok">
                    <span> Item added </span>
                   </p>
                  ';
                  header("Refresh: 2; url=?page=$item");
        }
        else{ // It will return this condition, case $result doesn't has any value assigned or is equal to FALSE (boolean)
            $message = '<p class="not"><span>There is an error blah blah</span></p>';
        }
        return $message;
}

Ve sonra bir değişken veya işlev içinde $result değişken olarak ele alınması gereken bir değer eklemek için zaten çağırarak sizin gibi işlevini çağırabilirsiniz, ama unutma

addMessage('contents', $result);

Note:

Lütfen $message değişkeni ile <p class=not> var ve olmalıdır <p class="not">.

Herhangi bir gerçek çıktı tarayıcıya gönderilmeden önce header() denilen gerektiğini unutmayın.

Umarım yardımcı olur.

Sen $result if iç kontrol ediyoruz ama onun ne olduğunu önce herhangi bir değer atanmış ne de global olarak ilan edilmiştir. Ben kontrol etmek anlamına düşünüyorum $item:

if ($item) {

$result sizin komut tanımlanmış mı? if ($item) yerine kullanın.

PHP tanımlanmamış değişkenlerin kullanımını sağlayan çok dikkatli olun.

onlar :-) ne dedi

Btw, (Zend gibi) iyi bir IDE kod analiz ve bu gibi şeyler hakkında sizi uyaracaktır.

Bu tür statik kod analizi "tüylenme" olarak bilinen, yani "PHP tüysüz" için google veya benzeri soruları görmek edilir http://stackoverflow.com/questions/378959/is-there-a-static-code-analyzer-like-lint-for-php-files

, Bu yüzden okuma bir sürü yapmak ve araçları ve deneyim bir sürü toplamak - Ama bu kod örneği ben bir acemi (hepimiz yerde başlamak zorunda staj hiçbir suç) sanırım o kadar küçük.

Örneğin, (Zend veya Eclipse PDT gibi) iyi bir IDE sizin kod, satır nAşağıda hattı üzerinden adım atalım ve her değişkenin değerini incelemek ve daha sonra sorun gördük gerektiğini olurdu.

PHP ve iyi şans için hoş geldiniz!