Vezérlőszerkezetek - feltételek
A PHP vezérlőszerkezetek, feltételek írása, működése
- Főoldal
/
- Kurzusok
/
- Webfejlesztés
/
- PHP
/
- PHP alapok
Vezérlőszerkezetek - feltételek
Az előbbi leckékben leírtuk de, hogy ne felejtsük el, a következők:
- == - megnézzük, hogy két érték egyezik-e?
- === - megnézzük, hogy két érték egyezik-e? típus szerint is
- != - megnézzük, hogy két érték különbözik-e?
- !== - megnézzük, hogy két érték különbözik-e? típus szerint is
- <> - megnézzük, hogy két érték különbözik-e?
- < - megnézzük, hogy az első szám kisebb-e mint a második?
- > - megnézzük, hogy az első szám nagyobb-e mint a második?
- <= - megnézzük, hogy az első érték kisebb-e mint a második?
- >= - megnézzük, hogy az első érték nagyobb-e mint a második?
- || - két feltételt lehet összekapcsolni vagy kötődéssel, egyik feltétel vagy másik
- && - két feltételt lehet összekapcsolni és kötődéssel, egyik feltétel és másik
A feltételek esetében működése a következő: írunk egy feltételt és amennyiben az eredmény értéke "IGAZ" lesz, a PHP végrehajtja azt a részt ami a feltételhez tartozik. A hozza tartozó részt megjelölhetjük kapcsoszárójelek segítségével az alábbi módon:
<?php
if( TRUE )
{
}
?>
Ebben a példában a "TRUE" a feltétel, amit úgy kell értelmezni, hogy: IGAZ? Több feltételt is összeköthetünk a "||" vagy az "&&" segítségével. Ha és-el kötünk össze két vagy több feltételt, akkor minden feltételnek kell teljesülnie. Ha vagy-al kötjük össze, akkor a feltételek közül bármelyik teljesülése esetén a feltétel is IGAZ lesz.
A feltételek kombinálhatóak, amennyiben szükségünk van rá, célszerű úgy kombinálni, hogy zárójelek közé írjuk őket, pl:
<?php
if( $variable1 == "Szoveg1" && ( $variable2 == "Szoveg2" ) || $variable3 == "OK" ) )
{
}
?>
Ebben az esetben a feltétel akkor teljesül ha:
- a "$variable1" értéke egyenlő "Szoveg1"
- és
- a "$variable2" értéke egyenlő "Szoveg2" vagy a $variable3 értéke egyenlő "OK"
Amennyiben zárójelek nélkül írjuk a feltételt, a rendszer nem bíztos, hogy úgy fogja értelmezni, ahogy azt mi szerettük volna.
Az értelmezés úgy történne, hogy:
- a "$variable1" értéke egyenlő "Szoveg1" és a "$variable2" értéke egyenlő "Szoveg2"
- vagy
- $variable3 értéke egyenlő "OK"
A különbség elolvasás után jól kivehető.
Fontos tudni, hogy ami HAMIS, üres szöveg vagy 0, annak az értéke feltételként mindig HAMIS.
Ami nem HAMIS az mind IGAZ.
Érthetőbben, ha írunk egy feltételt, hogy:
<?php
$string = "Szöveg1";
if( $string )
{
}
?>
Mivel a "$string" értéke nem számít HAMIS-nak, ezért a feltétel teljesül.
Vagy ha írunk egy másikat, melyben a változónk értéke 0:
<?php
$number = 0;
if( $number )
{
}
?>
A feltétel nem teljesül, mert a 0 érték az HAMIS-t jelent, és a "$number" értéke 0.
A két karakterből álló feltételek néha nagyon meg tudnak viccelni minket, például nagyon ügyelni kell arra, hogy a "0" érték az HAMIS-t jelent. Például amikor megnézzük, hogy egy szó létezik-e egy másik szövegben, ha megtalálja a rendszer a szót, vissza adja a pozicióját az adott szövegből. Hogyha a szöveg azzal a szóval kezdődik, a vissza kapott pozíció a 0 lesz, ami HAMIS-t jelent. Erre egy példa:
<?php
$string = "Ez itt egy szöveg, melyben megkeresünk egy szót";
$word = "Ez";
// Lekérdezzük a szó helyét a szövegből, ha nem találja az értéket
// akkor HAMIS-t ad vissza, másképp a szó helyét
$has_the_word = strpos( $string, $word );
// Ha a rendszer nem találja meg a szót
if( $has_the_word == FALSE )
{
}
?>
Ebben a példában a $has_the_word értéke 0 lesz, mert azon a pozíción helyezkedik el a szó, és mivel a 0 feltételként HAMIS-t jelent, ezért teljesül a feltétel, mert a FALSE == FALSE-al.
Ebben az esetben használjuk a három egyenlőséget, mely az érték típusát is megnézi, így a 0 nem egyenlő a FALSE-al, ezért a feltétel nem fog teljesülni.
<?php
// Ha a rendszer nem találja meg a szót
if( $has_the_word === FALSE )
{
}
?>
Ugyanez igaz az IGAZ értékre is, vigyázni kell a feltételként való használatkor. El kell dönteni, hogy bármelyik érték megfelel számunkra ami igazat jelent, vagy csak kifejezetten egy. Ha csak egy érték felel meg nekünk, mindenképp használjuk a hármas egyenlőséget (===) vagy a hármas nem egyenlőséget (!==)-t.
Feltételek esetében nem szükséges kimenteni egy változóba a vissza kapott értékeket, majd a változókat ellenőrizni, nyugodtan beírhatjuk a feltételbe direkt is őket, de célszerű néha, mert átláthatóbb lesz a kód, könnyebben meg fogjuk érteni ami ott történik. Pl.:
<?php
$string = "Ez itt egy szöveg, melyben megkeresünk egy szót";
$word = "Ez";
// Ha a rendszer nem találja meg a szót
if( strpos( $string, $word ) == FALSE )
{
}
?>
- Előző lecke: A PHP operátorok
- Következő lecke: Szövegek megjelenítése - kiíratás
Részletek
- Megtekintve: 457
- Haszontalannak jelölve: 0
- Hasznosnak jelölve: 0
- Értékelés: