Else koşul PHP bir işlevi çağırmadan değilse

4 Cevap
if($process->g_User() && $process->g_Pass()){
         if($process->LdapConn()){
             if($process->LdapBind()){

                    return 'google';

             }else{
    			procLogin();
         }
     }

     }

Benim koşul başarısız olursa, o () işlevi procLogin çağırması gerekir ama onun çağırarak değil ... ProcLogin sadece bir yankı var ...

if($process->g_User() && $process->g_Pass() && $process->LdapConn() 
   && process->LdapBind()) {
    return 'google';

Bu kullanırken ... hatta google aramaz ...

Ama benim son kod, en azından aramıştım ...

Benim Gereği kullanıcı adı ve şifre yanlış ise, o zaman ne olursa olsun bağlantı kurulduğunda başarısız ya da olmamalı ... olduğunu.

4 Cevap

EDIT: Benim Gereği kullanıcı adı ve şifre yanlış ise, o zaman ne olursa olsun bağlantı kurulduğunda başarısız ya da olmamalı ... olduğunu.

So, I take it that g_User() and g_Pass() validate each the username and password. As to what is 'fail' I'm guessing it's procLogin(). If 'fail' is return 'google', put the bodies the other way around.

Benim varsayımlar (ki, yine berbat bir sorun spec nedeniyle emin olamaz), o zaman bu ne istediğiniz doğru olup olmadığını

if($process->g_User() && $process->g_Pass()){
     if($process->LdapConn() && $process->LdapBind()){
        return 'google';
     }
} else {
     procLogin();
}


Doğru girinti unutmak, ve mümkün olduğunca soruları kadar net yapmaya asla. Örneğin, bakın durum Şimdi hepimiz tahmin var ... hiç belli değil budur.

Eğer procLogin () bir durum başarısız olduğunda denir, ve kod yinelenen önlemek istiyorsanız istiyorsanız Örneğin, aynı davranışı almak için shortcircuiting yararlanabilirsiniz:

if($process->g_User() && $process->g_Pass() && $process->LdapConn() 
   && process->LdapBind()) {
    return 'google';
} else {
    procLogin();
}

Yoksa, bu LdapConn () başarısız olursa procLogin () çağrılacak istediğiniz nedir? Sonra parantez yanlış ettik:

if($process->g_User() && $process->g_Pass()){
     if($process->LdapConn()){
         if($process->LdapBind()){
            return 'google';
         }
     } else {
         procLogin();
     }
}

Eğer $process->LdapBind() yanlış dönen değil $process->LdapConn() emin misiniz?

Ben doğru veya yanlış ile işlevlerini yerine sizin örnek kopyalarsanız, sadece $process->LdapBind() false olunca beklendiği gibi çalışır.

Belki istediğiniz:

if($process->g_User() && $process->g_Pass()){
         if($process->LdapConn()  &&  $process->LdapBind()){
                    return 'google';
             }else{
                     procLogin();
         }
     }

     }

($ süreç-> LdapBind ()) doğruysa, onlar ($ süreç-> LdapConn ()) VE hem if sadece tetikleyecek?

Eğer procLogin isterseniz giriş başarısız olursa () denir:

if($process->g_User() && $process->g_Pass()){
 if($process->LdapConn()){
	 if($process->LdapBind()){
			return 'google';
	 }
 }


} else {
// Login has failed
procLogin();
 }