Signatur
Beschreibung
mhash_count() liefert die höchste interne ID der unterstützten Hash-Algorithmen der mhash-Bibliothek. Da die IDs bei 0 beginnen, entspricht die Anzahl der verfügbaren Algorithmen dem Rückgabewert plus eins.
Die Funktion wird typischerweise in Schleifen eingesetzt, um alle verfügbaren Algorithmen der mhash-Extension zu enumerieren. Zusammen mit mhash_get_hash_name() lässt sich damit eine vollständige Liste aller unterstützten Hashverfahren erzeugen.
Hinweis: Die mhash-Funktionen sind seit PHP 5.3.0 als Wrapper über die Hash-Extension implementiert. Es empfiehlt sich, für neue Projekte stattdessen die moderne hash_algos()-Funktion zu verwenden, die unabhängig von der mhash-Extension alle unterstützten Algorithmen auflistet.
Rückgabewert
0 bis einschließlich dieses Rückgabewerts.Beispiele
Alle verfügbaren mhash-Algorithmen auflisten
<?php
$maxId = mhash_count();
echo "Höchste Hash-ID: $maxId" . PHP_EOL;
echo "Anzahl verfügbarer Algorithmen: " . ($maxId + 1) . PHP_EOL . PHP_EOL;
for ($i = 0; $i <= $maxId; $i++) {
$name = mhash_get_hash_name($i);
if ($name !== false) {
echo "ID $i: $name" . PHP_EOL;
}
}
Vergleich mit hash_algos() als moderne Alternative
<?php
// Alte Methode via mhash
$mhashCount = mhash_count() + 1;
echo "mhash kennt $mhashCount Algorithmen." . PHP_EOL;
// Moderne Methode via Hash-Extension
$hashAlgos = hash_algos();
echo "hash_algos() kennt " . count($hashAlgos) . " Algorithmen." . PHP_EOL;
echo "Beispiele: " . implode(', ', array_slice($hashAlgos, 0, 5)) . PHP_EOL;
// Wichtig · Fallstricke
Deprecation: Die mhash-Extension gilt als veraltet. Seit PHP 5.3.0 ist sie als Kompatibilitäts-Wrapper über die hash-Extension implementiert. Für neue Projekte sollten stattdessen hash(), hash_hmac() und hash_algos() verwendet werden.
Die tatsächliche Anzahl der verfügbaren Algorithmen hängt von der PHP-Build-Konfiguration und der installierten mhash-Version ab. Der Rückgabewert kann daher zwischen verschiedenen Umgebungen variieren.