Ich versuche, die Anzahl der positiven Werte in einer Eingabezeichenfolge zu zählen. Also, ich binZugriff auf externe Variable von einer Funktion
- Konvertieren der Zeichenfolge Array
- Iterate durch das Array und prüfen, ob der num positiv ist
Dies funktioniert gut, wenn ich eine foreach-Schleife verwenden.
Aber ich versuche, dies mit dem Standard array functions zu arbeiten.
$handle = fopen("php://stdin","r");
$positiveCount = -1;
fscanf($handle, "%d", $nums);
$arrayString = fgets($handle);
$array = explode(" ", $arrayString);
array_walk($array, function($num, &$positiveCount){
if($num>0){
print("In positive : {$positiveCount}\n");
$positiveCount++;
}
});
print("Total Count : {$positiveCount}");
Ich erwartete $ positiveCount zu der Funktion als Referenz übergeben werden und withing in erhöht.
Das ist mein Ausgang,
$ php plusMinusNotWorking.php
4
1 2 0 -1
In positive : 0
In positive : 1
Total Count : -1
Pass durch Verweis scheint hier nicht arbeiten . Liegt es daran, dass ich eine anonyme Funktion verwende? Meine erwartete Ausgabe ist
$ php plusMinusNotWorking.php
4
1 2 0 -1
In positive : 1
In positive : 2
Total Count : 2
Danke !. Ich habe diese Verwendung gesehen, habe aber versucht, die Dokumentation dafür herauszufinden. Diese Frage gibt auch weitere Informationen. http://stackoverflow.com/questions/6320521/use-keyword-in-functions-php –
Sie sind willkommen), und ja, das ist ein sehr hilfreicher Beitrag. – SajeshBahing