Portál AbcLinuxu, 5. května 2025 03:04

Dotaz: Pro mě neznámý return v PHP

18.12.2011 18:15 Pepa
Pro mě neznámý return v PHP
Přečteno: 455×
Odpovědět | Admin
Zdravím, při rozboru kodu jedne palikace jsem narazil na pro mě neznámou konstrukci. Mužete mi někdo vysvětlit jak to vlasně funguje? Jedna se o metodu jednoho objectu, tady je kus kodu
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:


Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

18.12.2011 18:27 Magog | skóre: 6
Rozbalit Rozbalit vše Re: Pro mě neznámý return v PHP
Odpovědět | | Sbalit | Link | Blokovat | Admin
Tahle konstrukce je ekvivalentní s return ($car && $car->wheels);. Vrací se tedy boolean, který vznikne andováním $car a $car->wheels.
18.12.2011 19:24 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
Rozbalit Rozbalit vše Re: Pro mě neznámý return v PHP
Odpovědět | | Sbalit | Link | Blokovat | Admin
Je to ekvivalent tohoto zápisu
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 auto
Fce 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.

To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
19.12.2011 06:42 Ash | skóre: 53
Rozbalit Rozbalit vše Re: Pro mě neznámý return v PHP
Vzhledem k tomu, že se v dotazu neřeší konkrétní hodnota $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.
19.12.2011 10:33 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
Rozbalit Rozbalit vše Re: Pro mě neznámý return v PHP
No vida, to mě ani nenapadlo :-).
To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
Josef Kufner avatar 19.12.2011 16:33 Josef Kufner | skóre: 70
Rozbalit Rozbalit vše Re: Pro mě neznámý return v PHP
Což se ale nijak nevylučuje. Pokud to obsahuje počet kol, tak po přetypování na bool to vyjde nastejno.
Hello world ! Segmentation fault (core dumped)
19.12.2011 21:21 Pepa
Rozbalit Rozbalit vše Re: Pro mě neznámý return v PHP
Mockrát děkuji všem za perfektní výklad.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.