Scholieren.com forum

Scholieren.com forum (https://forum.scholieren.com/index.php)
-   Software & Hardware (https://forum.scholieren.com/forumdisplay.php?f=20)
-   -   PHP if statement (https://forum.scholieren.com/showthread.php?t=581520)

TIGEK 27-08-2003 09:49

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:

 if ($rep "on") {
echo 
"warrep";



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:

 <?PHP  


$bestand
=array_reverse(file("war/war2.txt"));  
$test "yes";
foreach(
$bestand as $i)  
{  
    
$i=explode("|",$i);  
    
$clan $i[0];  
    
$cid $i[1];
    
$type $i[2];  
    
$us $i[3];  
    
$them $i[4];  
    
$score $i[5];
    
$wid $i[6];
    
$rep $i[7];
echo 
"$clan$cid $type $us $them $score $wid $rep";
if (
$rep "on") {
echo 
"warrep";

echo 
"<br>";
}
?>

Ik kom er niet weet iemand wat ik fout doen

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 :)

Harrie 27-08-2003 09:52

dubbele = gebruiken..

if( $rep == 'on' )
{
blabla

deathz0rz 27-08-2003 10:15

Citaat:

Harrie schreef op 27-08-2003 @ 10:52:
dubbele = gebruiken..

if( $rep == 'on' )
{
blabla

idd, staat gewoon in de man hoor ;)

en daarbij zou ik "0 of false" en "'non-zero' of true" gebuiken

Triloxigen 28-08-2003 12:16

Je kunt ook isset() gebruiken :)

Koen 28-08-2003 12:28

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..

TIGEK 28-08-2003 12:45

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 :)

Dr HenDre 28-08-2003 17:44

Citaat:

TIGEK schreef op 28-08-2003 @ 13:45:
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 :)

if ($rep = on) is ALTIJD true, je test geen conditie, dus je if statement zal altijd true zijn, het is dus technisch gezien fout. Als je script zo werkt, is er iets mis mee.
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.

Enlightenment 28-08-2003 23:42

Gebruik:

if ($bla === false)
bla;
else
bla;

De === betekent dat de variabele ook van hetzelfde type is:
Code:

$test = 0;

if ($test == false)
 echo('Test == false'); // dit wordt wel uitgevoerd, 0 is gelijkwaardig aan false
if ($test === false)
 echo('Test === false'); // dit wordt niet uitgevoerd, $test is 0 en niet false


Dr HenDre 29-08-2003 15:55

Citaat:

Enlightenment schreef op 29-08-2003 @ 00:42:
Gebruik:

if ($bla === false)
bla;
else
bla;

De === betekent dat de variabele ook van hetzelfde type is:
Code:

$test = 0;

if ($test == false)
 echo('Test == false'); // dit wordt wel uitgevoerd, 0 is gelijkwaardig aan false
if ($test === false)
 echo('Test === false'); // dit wordt niet uitgevoerd, $test is 0 en niet false


ik zie het verschil niet tussen de 2 if statements, waarom zou de ene wel en de andere niet uitgevoerd worden. Want de int die bij false hoort is 0

Enlightenment 29-08-2003 16:58

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.

Dukko 29-08-2003 21:59

* offtopic *

deathz0rz 30-08-2003 00:12

Citaat:

Enlightenment schreef op 29-08-2003 @ 17:58:
*verhaal*
een ander voorbeeld:

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.