Portál AbcLinuxu, 5. května 2025 03:04
public function hasCar{ $car = $this->getCar(); return $car && $car->wheels; }Myslel jsem ze return musi vracet jedine promenou nebo hodnotu, ale nechapu co dela to && $car->wheels. Mohl by mi nekdo rozepsat ekvivalentni zapis polopatě? Díky
Řešení dotazu:
return ($car && $car->wheels);
. Vrací se tedy boolean, který vznikne andováním $car a $car->wheels.
if(($car)&&($car->wheels)) return true; else return false;nebo třeba:
return (($car)&&($car->wheels))?true:false;a myšleno je tím pravděpodobně toto (ne, jakože to původní je špatně - jen pro lepší pochopení):
if((is_object($car))&&($car->wheels != 0))//volil bych raději > 2 :) return true; //máme auto else return false; //nemáme auto, nebo je to mrzák a nemá kola a tedy nemáme autoFce
getCar()
má evidentně vrátit objekt a platný objekt je vždy různý od nuly, takže kdyby to náhodou vrátilo NULL
, podmínka už se dál nevyhodnocuje a je vráceno false
, pokud je ovšem objekt platný tak musí být ještě splněna podmínka, že má počet kol různý od nuly, takže pokud má auto třeba i -6 kol je vráceno true
- tedy máAuto.
$wheels
, tak bych $wheels
== true chápal jako že se jedná o vozidlo s koly, tedy neoznačujete to počet kol, ale vlastnost mít kola.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.