1 > 43 ? spinn ich oder der php interpreter

Hi,

spinn ich oder der php interpreter oder bin ich blind?

$flo1 = "1"; $flo2 = "43"; if($flo1 > $flo2) { $x = '2'; } else { $x = "4"; }

Bekomm aus ausgabe 4 also behauptet php
1 > 43 // aber des stimmt ja nicht

lg und danke flo


Stimmt doch:
1 > 43
JA -> 2
NEIN -> 4

Wäre 1 größer als 43 würder er doch 2 ausgeben.

Hat es eigentlich einen besonderen Grund, dass du die Zahlen als Zeichketten zuweist?

Stimmt doch:
1 > 43
JA -> 2
NEIN -> 4

Wäre 1 größer als 43 würder er doch 2 ausgeben.

Hat es eigentlich einen besonderen Grund, dass du die Zahlen als Zeichketten zuweist?

Möglichkeit 1 oder 3.

[quote]$flo1 = "1"; $flo2 = "43"; if($flo1 > $flo2) { $x = '2'; } else { $x = "4"; }
Bekomm aus ausgabe 4 also behauptet php
1 > 43 // aber des stimmt ja nicht[/quote]
“1” > “43” ergibt false, also geht es in den else-Zweig.

Also behauptet PHP ganz und gar nicht, dass “1” > “43” sei, sondern das Gegenteil.

Hi,

ja danke ich bin echt doof … (vor allem in dem obigen vereinfachten beispiel)

in dem etwas komplexeren hatte ich den fehler ich hatte des code stück in ner function und wie wir ja alle wissen ist in ner function nicht ne “nicht functionsvariable” nicht verfügbar und damit = 0
Weil des oben geschriebene warscheinlich keiner kapiert weil ich des zu dumm beschrieben hab:

<?php $a = "43"; function a() { $b = 4; if($a < $b) { // stimmt da 0 < 4 } else { // stimmt nicht da 0 < 4 } } ?>

danke
oh man wie peinlich
lg flo

Und wie wir ebenfalls alle wissen*, stellt man während des Entwickelns das error_reporting auf (mindestens) E_ALL und display_errors auf 1 - damit PHP einen auf sowas hinweisen kann, bevor man sich blamieren muss :slight_smile:

  • oder? Falls du das noch nicht gemacht hast, mach es bitte jetzt!

Was Global ist weißt du oder?
Damit könntest du die Variable “holen”^^

<span class="syntaxdefault">$var&nbsp;</span><span class="syntaxkeyword">=&nbsp;</span><span class="syntaxdefault">42</span><span class="syntaxkeyword">;<br />function&nbsp;</span><span class="syntaxdefault">test</span><span class="syntaxkeyword">()<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;</span><span class="syntaxstring">'$var:&nbsp;'</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">$var</span><span class="syntaxkeyword">.</span><span class="syntaxstring">"<br>\n"</span><span class="syntaxkeyword">;<br />&nbsp;&nbsp;&nbsp;&nbsp;Global&nbsp;</span><span class="syntaxdefault">$var</span><span class="syntaxkeyword">;<br />&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;</span><span class="syntaxstring">'$var:&nbsp;'</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">$var</span><span class="syntaxkeyword">.</span><span class="syntaxstring">"<br>\n"</span><span class="syntaxkeyword">;<br />}&nbsp;</span><span class="syntaxdefault"></span>Natürlich kann/sollte man die Variable direkt als Global deklarieren wenn diese auch ein solches ist…

Hi,

das mit dem error reporting hab ich schon oft gelesen aber noch nie angewandt … wusste auch nicht was das bringt dachte i-wie des is sowieso an weil des fehler abbruch macht wenn z.b. n ; vergessen hat … naja wieder mal ist denken nicht gleich wissen danke jetz weiß ich es :slight_smile: (man lernt nie aus) :stuck_out_tongue: :stuck_out_tongue:

Joa danke white-tiger des mit dem global wusste ich aber wollte drauf verzichten … vorallem muss man davor auch erst mal merken das die variable außerhalb der function ist … naja hatte halt nen kleinen black out :S

Trotzdem nochmals danke an alle

lg flo

[quote=“Ryon_”][]
Joa danke white-tiger des mit dem global wusste ich aber wollte drauf verzichten … vorallem muss man davor auch erst mal merken das die variable außerhalb der function ist … [][/quote]Jain^^

[quote=“White-Tiger”][]
Natürlich kann/sollte man die Variable direkt als Global deklarieren wenn diese auch ein solches ist…[/quote]Heißt z.B. <span class="syntaxdefault"></span><span class="syntaxkeyword">Global&nbsp;</span><span class="syntaxdefault">$_var&nbsp;</span><span class="syntaxkeyword">=&nbsp;</span><span class="syntaxdefault">42</span><span class="syntaxkeyword">;<br />function&nbsp;</span><span class="syntaxdefault">test</span><span class="syntaxkeyword">()<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;</span><span class="syntaxstring">'$_var:&nbsp;'</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">$_var</span><span class="syntaxkeyword">.</span><span class="syntaxstring">"<br>\n"</span><span class="syntaxkeyword">;<br />}&nbsp;&nbsp;</span><span class="syntaxdefault"></span>würde auf Anhieb gehen ohne das man “wissen” muss das diese Global ist^^ Problematisch wirds dann nur wenn man ne gleichnamige Variable in einer Funktion nutzen will und vergisst das es schon ne Globale gibt^^
Darum am besten nen underscore “_” o.ä. als Präfix nutzen was einem sagt das es ne Globale ist :wink:

Hi,

nochmal danke … :wink: aber ich glaub keiner definiert ne simple variable ($a = time():wink: als global wäre ja bissal sinnlos (in meinen augen außer ich brauch die n paar mal dann is was anders) …

Herzlichen Glückwunsch zum 3700 Beitrag white-tiger :wink:

lg flo

Lieber die Variable als Parameter übergeben, statt auf „global“ zurückzugreifen.

Jupp des sag ich auch :smiley: