Ocena wątku:
  • 0 głosów - średnia: 0
  • 1
  • 2
  • 3
  • 4
  • 5
Zwracanie wartości przez funkcje
#1
Witam,

Wykorzystałem wbudowaną funkcje max(); do porównania dwóch wartości i w kursie napisane było "(Stosując takie podejście, należy tylko pamiętać , że programista wywołujący tę funkcję musi sprawdzać typ zwracanej wartości przy użyciu operatora === aby uzyskać pewność, że wartość false nie zostanie pomylona z 0)."

SS: http://scr.hu/70g/hnbby

I czy ten kawałek kodu jest dobrze napisany ze sprawdzaniem, że jezeli bedzie false to zatrzyma wykonywanie reszty kodu ?

Kod:
$x = 2;
$y = 6;

if (max($x,$y) === false) {
        echo "nie udalo sie";
        return;
        } else {
        echo "udalo sie";
        }

Czy ja tu coś źle rozkminiłem z tym false i 0 ?
Nie ma głupich pytań są tylko głupie odpowiedzi
Odpowiedz
#2
chyba dobrze masz

x === y (identical)

True if x is equal to y, and they are of same type

przykład 5==="5" returns false

tylko samo max($x,$y) niczego ci nie wyświetli ani nie przyporządkuje wyniku do żadnej zmiennej(nie wiem czy to tylko przykład taki podałeś czy taki masz kod)
powinno być
Kod:
$wieksza=max($x,$y);
if($wieksza===false){
echo 'nie udalo sie';
}else{
echo 'udalo sie';
}
Odpowiedz
#3
1. max() nie zwróci Ci false.
2. zapis sam w sobie masz poprawny.

@camelrafal, nie ma sensu tutaj ładować tego do zmiennej, jeśli tego nie potrzebuje. Poza tym, jak max() nie zwróci wartości?
Dobre samopoczucie w tym tygodniu sponsoruje cytat:
Cytat:Mogę tylko tylko na prawo i lewo ale na środek nie mogę.
Odpowiedz
#4
Ja to bym zrobił tak,

Kod:
$x = 2;
$y = 6;
echo max($x,$y);

ale kurs mówi ze lepiej jest napisac tak, aby uważać na false. Zresztą dałem tam tez ss =)
Nie ma głupich pytań są tylko głupie odpowiedzi
Odpowiedz
#5
faktycznie max nie zwraca czegoś takiego jak false więc w kursie może nie zauważyli
pewnie chodziło o to aby pamiętać o tym że niektóre funkcje zwracają false zamiast jakiejś zmiennej
strpos jest bardzo dobrym przykładem natomiast max to chyba przez pomyłke podali

strpos zwraca false kiedy nie znaleziono znaku w stringu a jak znajdzie zwraca pozycje (int)

w samym manualu nakazują korzystać z === aby nie doszło do przekłamań

Cytat:Warning

This function may return Boolean FALSE, but may also return a non-Boolean value which evaluates to FALSE. Please read the section on Booleans for more information. Use the === operator for testing the return value of this function.

manual
Odpowiedz
#6
Ok w takim razie thx i ++ dla was =) Jeszcze moze pozniej cos tam poszukam na ten temat.
Nie ma głupich pytań są tylko głupie odpowiedzi
Odpowiedz


Podobne wątki
Wątek: Autor Odpowiedzi: Wyświetleń: Ostatni post
  Połączenie strony z Facebook przez RSS Trey 0 1,949 22-10-2014, 18:10
Ostatni post: Trey
  Dodanie 1 wartości do kolumny Intelactive 2 2,317 20-10-2012, 20:40
Ostatni post: Intelactive
  Pracowanie w plikach przez stronę. Krzyzan 6 4,437 24-09-2012, 23:33
Ostatni post: Krzyzan
  Zliczanie wartości pola formularza piottro1 12 9,481 24-06-2011, 02:35
Ostatni post: piottro1
  Problem. Błąd serwera przez plik .htaccess Yakim 3 3,577 20-06-2011, 02:10
Ostatni post: hieroshima

Skocz do:


Użytkownicy przeglądający ten wątek: 1 gości
Sponsorzy i przyjaciele
SeoHost.pl