Start · Sprachen · PHP · Referenz · getmyinode

getmyinode

Funktion

Gibt die Inode-Nummer der aktuell ausgeführten PHP-Skript-Datei zurück.

seit PHP 4.0.0 Kategorie: misc

Signatur

getmyinode(): int|false

Beschreibung

getmyinode() liest den Inode der Datei, die das aktuell laufende PHP-Skript enthält, und gibt ihn als Integer zurück. Ein Inode ist eine Metadaten-Struktur auf Unix-/Linux-Dateisystemen, die Informationen wie Eigentümer, Berechtigungen und Speicherort einer Datei speichert – aber nicht den Dateinamen selbst.

Die Funktion ist primär auf Unix-ähnlichen Betriebssystemen sinnvoll und kann z. B. genutzt werden, um eine Datei eindeutig zu identifizieren, unabhängig von ihrem Pfad oder Hardlinks. Auf Windows-Systemen ist der Inode-Begriff nicht in gleicher Weise definiert, sodass die Funktion dort false zurückgeben kann oder nur begrenzt nützlich ist.

Für allgemeinere Anwendungsfälle – etwa den Inode einer beliebigen Datei zu ermitteln – eignet sich fileinode() besser, da diese Funktion einen Dateipfad als Parameter entgegennimmt.

Rückgabewert

Typ
int|false
Beschreibung
Gibt die Inode-Nummer des aktuellen Skripts als Integer zurück, oder false im Fehlerfall (z. B. wenn die Information nicht ermittelt werden kann).

Beispiele

Inode des aktuellen Skripts ausgeben

<?php
$inode = getmyinode();

if ($inode !== false) {
    echo 'Inode des aktuellen Skripts: ' . $inode;
} else {
    echo 'Inode konnte nicht ermittelt werden.';
}
Inode des aktuellen Skripts: 1234567

Inode mit fileinode() vergleichen

<?php
// Beide Aufrufe sollten denselben Inode liefern
$inode_mein    = getmyinode();
$inode_datei   = fileinode(__FILE__);

if ($inode_mein === $inode_datei) {
    echo 'Inodes stimmen überein: ' . $inode_mein;
} else {
    echo 'Unterschiedliche Inodes – unerwartetes Verhalten.';
}
Inodes stimmen überein: 1234567

// Wichtig · Fallstricke

Portabilität: Die Funktion ist nur auf Unix-/Linux-Systemen zuverlässig. Unter Windows gibt es kein natives Inode-Konzept; der Rückgabewert kann 0 oder false sein.

Caching: Intern nutzt PHP den stat-Cache. Falls sich die Datei während der Laufzeit geändert hat, kann clearstatcache() notwendig sein, um aktuelle Werte zu erhalten – allerdings ist dies bei getmyinode() in der Praxis selten relevant.

Für produktiven Einsatz ist fileinode(__FILE__) oft klarer lesbar und flexibler, da der Pfad explizit angegeben wird.