Hauptmenü

Werkzeuge

Kategorien

Archiv

Tineco nass und trockensauger Einhell Shelly H&T Gen3 Liste von RTSP URLs für gängige Kameras Freischneider Test 2026 Test Wärmepumpentrockner 2026 USB Adapter Vergleich Ladekabel Kaffeemaschinen Vergleich Ladekabel Staubsauger Vergleich Ladekabel Mammotion YUKA mini 2 1000 im Test: Mähroboter ganz ohne Begrenzungsdraht lubluelu CHYW201 im Test: Fensterputzroboter ganz ohne Netzkabel

Inkonsistentes Verhalten von gettype in PHP

Erstellt in Allgemein am 19. Februar 2024 vom Daschmi

Mir ist aufgefallen, das die PHP Funktion „gettype“ bei Integer Werten „integer“ und nicht die interne PHP Bezeichnung „int“ zurückgibt.

Aufgrund der Abwärtskompatibilität wird das Verhalten wohl auch nicht geändert. https://bugs.php.net/bug.php?id=74742.

Aufgefallen ist mir das bei der Reflection einer Klasse die ich dynamisch für einen SOAP Server und REST Anfragen nutze. Dort erhalte ich bei „ReflectionParameter::getType“ als Typ „int“, wenn ich den aber mit dem gettype der JSON Anfrage vergleiche erhalte ich „integer“.

Gelöst habe ich das durch eine kleine match Function.

abstract class Helper {
  /**
   * Correct integer to int in the gettype php function
   * https://bugs.php.net/bug.php?id=74742
   * @param string $type
   * @return string
   */
  public static function mapGetTypeType(string $type): string {
    
    return match($type) {
      'integer' => 'int',
      default => $type
    };
    
  }
}