Seite 1 von 1

Was bedeutet dieser PHP-Code?

Verfasst: 21.06.2005 23:36
von Laurin
Moin

Ich bin gerade dabei einen Code von PHP nach PB zu konvertieren. Dabei bin ich auf das hier gestoßen:

Code: Alles auswählen

$diff=floor(($picture[$y][$rx<0?0:$rx]- $elevation)/$factor)+ $diffs[$y][$rx- $tilewidth]; 
Mir geht es dabei um diese Stelle: $picture[$y][$rx<0?0:$rx]
$picture ist ein zweidimensionales Array. Ich weiß nicht, wie ich [$rx<0?0:$rx] interpretieren soll. Kann mir das jemand bitte verraten?

Greetz Laurin

Zusatz:
Das Array Picture ist wie folgt aufgebaut:

Code: Alles auswählen

Structure Color
  red.l
  green.l
  blue.l
EndStructure

Dim Picture.Color(PictureImageWidth, PictureImageHeight)

Verfasst: 21.06.2005 23:58
von benny
@Laurin:

Das sieht so aus, als wäre das die Kurzschreibform von:

Pseudo-Code

Code: Alles auswählen

IF $RX < 0 THEN $RX = 0
Oder in anderen Worten, wenn $RX negativ ist, dann hat es denn Wert 0.
Ansonsten behält $RX seinen positiven Wert.

(Alle Angaben ohne Gewähr - ist schließlich schon spät ;-) )

Verfasst: 22.06.2005 06:54
von freedimension
benny hat geschrieben:Oder in anderen Worten, wenn $RX negativ ist, dann hat es denn Wert 0.
Ansonsten behält $RX seinen positiven Wert.
Nochmal anders ausgedrückt: Wenn $RX kleiner 0 wird 0 zurückgegeben, ansonsten $RX. $RX selber ändert sich hierbei nicht!

Verfasst: 22.06.2005 08:29
von benny
@freedimension:

Ja, du hast recht. Das ist eine wichtige Anmerkung. Es handelt sich hier
wirklich um einen Ausdruck, der entweder den Wert 0 oder den Wert von
$rx darstellt, und nicht um eine Zuweisung, die den Wert $rx verändert.

Verfasst: 22.06.2005 13:46
von bluejoke
In PB würde ich das so schreiben:

Code: Alles auswählen

If rx<0
 rx_temp = 0
Else
 rx_temp = rx
EndIf
Und dann rx_temp statt dem Ausdruck verwenden...

Verfasst: 22.06.2005 14:27
von Laurin
Danke für die Hilfe. :allright: