PHP ya da eğer deyimi çalışmıyor

5 Cevap php

Biz kod aşağıda parça kullanmak için çalışıyoruz

if (($_GET['1'] != "1") || ($_GET['1'] != "2")) {

Biz ne olursa olsun değişkenin ne değer bu çalıştığınızda bu veriler yanlış girildiğinde bile doğru olarak değerlendirecek. Biz kullandığınızda

if (($_GET['1'] == "1") || ($_GET['1'] == "2")) {

ve o düzgün çalışır return false yapacak veri koymak. Biz yolu tersine olması deyimi sadece bu yüzden bu çalışma alabilirsiniz gider ama ben bu işe yaramazsa neden Or ve eşit değil operatörleri ile php içinde yanlış ya da bir sınırlama şey yapıyor im olup olmadığını bilmek istiyorum

Teşekkürler

5 Cevap

İlk deneme, bu diyor:

$_GET['1'] "1" VEYA $_GET['1'] "2" başka bir şey daha başka bir şey ise,

Ifadesi her zaman geçecek: Bu eşitse 1 sizin eğer ifadenin ikinci yarısında != '2' testi geçecek. Bu eşitse 2 ilk yarısında != '1' testi geçmek ve test ikinci yarısında bunu yapmak asla.

İkinci test basitçe diyor ki:

$_GET['1'] "1" VEYA $_GET['1'] eşittir "2" daha sonra ifadesi geçmelidir eşitse

Muhtemelen ne parametre doğru değeri tutan yalnızca geçecek olan, bu ifadeyi istiyorum:

if(($_GET['1'] != '1') && ($_GET['1'] != '2'))

X 1 ya değildir ya da x 2 olmadığı için aşağıda ifade daima DOĞRU değerlendirecek. X aynı anda 1 ve 2 hem de eşit olduğunu hiçbir yolu yoktur!

($x != 1) || ($x != 2)

Tersi

($x == 1) || ($x == 2)

olduğunu

($x != 1) && ($x != 2)

Bir && ile | | Eğer değiştirmek zorunda olduğunu unutmayın.

kod ise:

if (($_GET['1'] != "1") || ($_GET['2'] != "2")) {

herhangi bir değer ya da boş bir değer bu durumu girebilirsiniz. && için | | değiştirebilirsiniz "1" ve "2" eşit olmayan herhangi bir dize anlamı size koşulu girebilirsiniz

Eğer ile (ya da bunu nasıl revize) başladı deyimi, ya da ne giriş niyetini bilmeden, ben ne sorunu olduğunu kesin olarak söyleyemeyiz.

$_GET['1'] 1'e eşittir ve $_GET['2'] 2'ye eşitse olduğunu söyledi, ilk deyimi tek FALSE değerlendirecek.

$_GET['1'] 1'e eşit değildir ve $_GET['2'] 2'ye eşit değilse, ikinci ifadesi yalnızca FALSE değerlendirecek.

Ben ne ilk tablosunda istedim olduğunu tahmin ediyorum

if (($_GET['1'] != "1") && ($_GET['2'] != "2")) {

$_GET['1'], 1 e eşittir ve $_GET['2'] 2'ye eşit olduğu sürece, FALSE değerlendirir edilmektedir.

Deneyin:

if (($ _GET ['1 ']! = "1") && ($ _GET ['2']! = "2")) {

Eğer kullanın! = Hem tablolarda, daha sonra kullanmanız gerekir && yerine | | hem tablolar değerlendirildi olsun emin olmak için.

Esasen kullanarak | | ilk ifadesi değerlendirilir alır demektir ve eğer yanlış sen OR kullanarak çünkü, daha sonra PHP ikinci deyim yok sayacaktır. Eğer && kullanmak Ancak, daha sonra PHP hem de! = Ifadeleri değerlendirmek için emin olacaktır.