Siechfred: zu PHP

Beitrag lesen

Hell-O!

es tritt ein fehler in 1+(int)(rand($i)); auf, obwohl die doku aussagt, dass die argumente optional sind.

Der Perlcode war:

1+int(rand($_[0]));

Das bedeutet:

Liefere den Ganzzahl-Teil einer Zufallszahl zwischen 0 und dem übergebenen Argument und addiere 1 dazu. Gib diesen Wert zurück.

Die Funktion rand gibt's auch in PHP, int ist wohl am ehesten mit floor zu vergleichen. Eventuell kannst du dir die Ganzzahlerei sparen, da ich nicht weiß, ob PHP nur Ganzzahlen oder auch Gleitkommazahlen liefert.

ein weiterer fehler tritt in $x=array_shift($i); auf. da bin ich über die perl-syntax ratlos. wieso wird da in perl der variablen $x die funktion shift zugewiesen???

Nein, shift heißt in diesem Kontext einfach nur, dass der erste (bei mehreren der nächste) Parameter zugewiesen wird. Die einer Subroutine übergebenen Parameter befinden sich im Array @_, dieses kannst du auf verschiedene Arten abfragen:

sub my_sub {  
  my @args = @_;  
  # mach was  
}  
  
sub my_sub {  
  my $arg1 = $_[0];  
  my $arg2 = $_[1];  
  # usw.  
}  
  
sub my_sub {  
  my $arg1 = shift;  
  my $arg2 = shift;  
  # usw.  
}

Es gibt auch noch mehr Möglichkeiten, für Details schau dir mal perlsub an. Mit diesem Verständnis sollte es nicht schwer sein, das Script von Perl nach PHP zu bekommen, oder?

Siechfred