PHP, co oznacza, że ​​linia?

głosy
-2

Jestem rozrusznik PHP, wiem, czy innego, albo, elseif ... ale ja nie rozumiem tych? i inne symbole. Więc możesz mi powiedzieć, co myśli to linie:

$success = $success ? $b->save(false) : $success;

if (!success) // shouldn't this be without !
    $transaction->commit(); // this means do the job, if ok
  else
    $transaction->rollBack(); // this means don't do the job, if not ok

Ponadto, może mi pan powiedzieć, jak nazywają to symbole, nie znam ich nazwy i tak nie mogę znaleźć tutoriale o nich

Utwórz 13/01/2014 o 10:30
użytkownik
W innych językach...                            


3 odpowiedzi

głosy
2

powyższy kod wygląda jeśli $successz poprzednich transakcji było truespróbować $b->save(false), a następnie umieścić zwracanej wartości od $b->save(false)do $success.

$b->save(false) ocalić bez walidacji, a po pomyślnym zapisać powróci true

wówczas ifczęść jest bardzo jasne

Odpowiedział 13/01/2014 o 10:34
źródło użytkownik

głosy
4

Jest to dość powszechne w wielu językach, można znaleźć tej operacji trójskładnikowych na przykład w javascript aswell

Jest to krótki ręka do if / else.

Część zanim ?to warunek, następna część jest kod do wykonania, jeśli powróci stan true, a ostatnia część (po :) jeżeli zwróci false:

condition ? if true : if false;

$a = 3 > 5 ? 'three is greater than five' : 'three is lesser than five';

W tym przypadku $abędzie three is lesser than five;

Polecam operacji trójskładnikowych tylko dla bardzo prostych warunkach / rezultatów, jeśli nie, możesz skończyć pisanie kodu w utrzymaniu mniej, poświęcając krótkość dla czytelności

Odpowiedział 13/01/2014 o 10:36
źródło użytkownik

głosy
2

To potrójny Operator, krótka forma dla if.

$success = $success ? $b->save(false) : $success;

jest taki sam jak

if($success) {
    $success = $b->save(false);
} else {
    $success = $success;
}
Odpowiedział 13/01/2014 o 10:37
źródło użytkownik

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more