Hier ist eine Funktion, die ich geschrieben habe, um die Dinge für mich selbst zu vereinfachen:
Es werden auch Kurzversionen von Boolean, Integer, Double und Real zurückgegeben.
function type($mixed, $parseNumeric = false)
{
if ($parseNumeric && is_numeric($mixed)) {
//Set type to relevant numeric format
$mixed += 0;
}
$t = gettype($mixed);
switch($t) {
case 'boolean': return 'bool'; //shorthand
case 'integer': return 'int'; //shorthand
case 'double': case 'real': return 'float'; //equivalent for all intents and purposes
default: return $t;
}
}
Wenn Sie type mit parseNumeric auf true aufrufen, werden numerische Zeichenfolgen konvertiert, bevor der Typ überprüft wird.
Somit:
Typ ("5", true) gibt int zurück
Typ ("3.7", true) gibt float zurück
Typ ("500") gibt eine Zeichenfolge zurück
Seien Sie vorsichtig, da dies eine Art falsche Überprüfungsmethode ist und Ihre tatsächliche Variable immer noch eine Zeichenfolge ist. Bei Bedarf müssen Sie die tatsächliche Variable in den richtigen Typ konvertieren. Ich brauchte es nur, um zu überprüfen, ob die Datenbank eine Element-ID oder einen Alias laden sollte, damit keine unerwarteten Auswirkungen auftreten, da sie zur Laufzeit ohnehin als Zeichenfolge analysiert wird.
Bearbeiten
Wenn Sie erkennen möchten, ob Objekte Funktionen sind, fügen Sie diesen Fall dem Schalter hinzu:
case 'object': return is_callable($mixed)?'function':'object';