![]() |
PHP if statement
Ik ben een begonen met een php script ;)
Ik zit in een clan en daarvoor wil ik op de clansite een overzicht maken met een link naar de andere clan. De war en als er 1 bestaat een warreport (Die war report wordt handmattig geschreven dus hij bestaad niet altijd.) Alle gegevens worden er goed in gestopt maar als ik het er uit probeer te halen gaat het wonder boven wonder ook nog goed. Bij somige wars zijn er geen reports en daarbij wil ik dus geen link geven. PHP-code:
Nu kan $rep on of off zijn. Maar ondanks dat krijg ik altijd dat er een warrep beschikbaar is (werrep wordt later de link) Voor de voledig heid de voledige script PHP-code:
PS die is de er een die iet voor een mooie layout zorgt dat doe ik later wel ik wil eerst hebben dat het werkt :) |
dubbele = gebruiken..
if( $rep == 'on' ) { blabla |
Citaat:
en daarbij zou ik "0 of false" en "'non-zero' of true" gebuiken |
Je kunt ook isset() gebruiken :)
|
Dit is wel héél basic hoor. ;) Je kent de PHP manual op php.net wel neem ik aan? Staan dit soort dingen wel in..
|
Gelukkig was dat het probleem niet. Maar wat anders.
Ik heb het opgelost door in de array een | achter de plaatsen en nu werkt het wel :) |
Citaat:
Verder is het ook beter om ipv on of off 0 en 1 of zero en non-zero of NULL bij off en anders gewoon on. |
Gebruik:
if ($bla === false) bla; else bla; De === betekent dat de variabele ook van hetzelfde type is: Code:
$test = 0; |
Citaat:
|
0 is gelijkwaardig aan false
maar 0 is niet gelijk aan false 0 is een integer, een getal. False is een Boolean. Bij === moeten de twee variabelen ook van hetzelfde type zijn om de test te doorstaan. Dit is belangrijk, b.v. bij de volgende query: $count_vars = sql('SELECT COUNT(`ip`) FROM `statistics`'); if ($count_ip == false) error('Fout in query'); else echo('Er zijn '.$count_ip.' IP adressen opgeslagen in de tabel `statistics`'); Toelichting: sql is een functie die ik gebruik om snel SQL queries uit te voeren, het geeft het resultaat terug van de 1e row en 1e column, of een array met de 1e row indien meerdere columns. Als de query mislukt, geeft het de boolean FALSE terug. Deze code werkt goed, totdat er geen rows in de tabel statistics staan, dan is $count_ip dus 0 en krijg je fout in query te zien, terwijl er niks mis is met de query; het resultaat is alleen 0. Deze bug kun je verhelpen door de === operator te gebruiken ipv ==. Alleen als de functie SQL expliciet FALSE returned, dan geeft hij de melding dat de query fout is. |
* offtopic *
|
Citaat:
de functie strpos($haystack,$needle) geeft de positie terug van de eerste $needle in $haystack, of FALSE als $needle niet voorkomt in $haystack. Op het moment dat $needle helemaal vooraan staat in $haystack, geeft de fuctie 0 terug. als je dan == in een conditie zou gebruiken lijkt het net alsof $needle helemaal niet in $haystack zit! ( http://nl3.php.net/manual/en/function.strpos.php ) |
Alle tijden zijn GMT +1. Het is nu 17:06. |
Powered by vBulletin® Version 3.8.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.