ifadesi fonksiyon getirisi belirlemek için kullanıldığında ile sorun

3 Cevap php

Bir işleve dönmek için ne olduğunu belirlemek, ama ben bunu istediğiniz şekilde çalışmıyor gibi görünüyor için bir if deyimi kullanarak Im.

function DoThis($dogs, $cats){
// do something with dogs, pet them perhaps.

$reg = $dogs[0];
$nate = $dogs[1];

if($cats = "dave"){return $reg;}
if($cats = "tom"){return $nate;}

}

$cats is a string (if that helps), and when entered it doesn't yield any return. If i manually set a return, that works, but the above doesnt for some reason.

3 Cevap

, Eşitlik için test yerine = ve == (çift eşittir) operatörü (tek eşittir) operatörü kullanın.

Örneğin:

if("dave" == $cats){return $reg;}
if("tom"  == $cats){return $nate;}

Sen atama operatörü yerine karşılaştırma operatörünü kullanarak ediyoruz. Yerine aşağıdaki deneyin.

 $cats == "dave"
 $cats == "tom"

Dediğiniz zaman

 if($cats = "dave") { ... }

Eğer gerçekten söylüyorsun

  1. Değişken $ kedilere değer "dave" Ata
  2. Değişken $ kediler atama sonra doğruysa, doğru dönün. Aksi takdirde, false döndürür

Bu ortak bir hata var, ve bir şey tha yaşlı elleri ve yeni eller veba.

Karşılaştırmak için == kullanmanız gerekir.

= Bir atama olduğunu, bu yüzden davranır (ifade olmayan boş için "dave", değerlendirir çünkü) $ kediler daha sonra "dave" ve ayar etkisi varsa "olarak ifadesi (true) ise .. . "ve içerdiği kodu çalıştırır.