jeszcze jedna różnica pomiędzy OR i || (double pipe)

0

Łatwo natrafić w manualu/sieci na informację, że opertory OR i || różnicą się priorytetem.

Dzisiaj zauwazyłem jednak coś takiego:
if(!$model = pobierzModel() || pomeczModel($model)) { ... }

Powyższy kod zadziała w przypadku operatora OR, natomiast operator || wywali błąd niezdefiniowanej zmiennej. Czy to powszechne w językach programowania i jest logiczne uzasadnienie, dlaczego tak się dzieje?

Natrafiłem na to w realnej sytuacji - chciałem rzucić błędem jeśli nie uda się pobrać modelu o $id i jednocześnie jeśli fałszem będzie $model->relacja - wszystko w jednym warunku. || zwracało błąd niezdefiniowanej zmiennej $model.

0

Operator przypisania ma mniejszy priorytet.

0

OK, widzę, że to nie jest żadne "bla bla" i musze uzupełnić wiedzę. Znałem różnicę między np. || i |, ale w kombinacji z przypisaniem zaskoczyło mnie działanie.

1 użytkowników online, w tym zalogowanych: 0, gości: 1