Warum verhält sich der Modulo-Operator in Perl und PHP anders?

8

Ich habe diese PHP-Funktion, die nicht für negative Zahlen funktioniert:

%Vor%

aber es funktioniert für positive Zahl.

Ich habe diese Perl-Routine, die genau dasselbe macht und auch für negative Zahlen funktioniert

%Vor%

Habe ich einen Fehler bei der Übersetzung der Funktion gemacht? oder ist es PHP Bug?

    
user640527 02.03.2011, 04:21
quelle

1 Antwort

19

In PHP ist das Vorzeichen des Ergebnisses von x % y das Vorzeichen von Dividend , das ist x , aber
In Perl ist dies das Zeichen des Divisors , der y ist.

In PHP kann das Ergebnis von $num % 2 entweder 1 , -1 oder 0 sein.

So reparieren Sie Ihre Funktion vergleichen Sie das Ergebnis mit 0 :

%Vor%     
codaddict 02.03.2011, 04:24
quelle

Tags und Links