Ich habe in einem WordPress-Lehrbuch gelesen, wo ich eine kurze Beschreibung für die folgende Funktion gefunden habe:
function is_super_admin( $user_id = false ) {...
Diese Funktion bestimmt, ob der Benutzer ein Site-Administrator ist.
Meine Frage bezieht sich jedoch darauf, wie PHP mit den Parametern umgeht.
Die obige Funktion erhält einen ganzzahligen Parameter, und wenn Sie ihr nichts übergeben, weist sie einen Standardwert von zu FALSE
.
Hier meine Frage:
FALSE
ist ein BOOLEAN
Datentyp, und diese Funktion sollte an akzeptieren INTEGER
Datentyp.
Wie kann es also erlaubt sein, einen booleschen Wert bereitzustellen, wenn wir einen ganzzahligen Wert bereitstellen sollten?
PHP 7 führte skalare Typdeklarationen ein.
Es gibt sie in zwei Geschmacksrichtungen: zwanghaft (Standard) und streng. Die folgenden Typen von Parametern können jetzt erzwungen werden (entweder zwingend oder strikt): Zeichenfolgen (string), ganze Zahlen (int), Gleitkommazahlen (float) und boolesche Werte (bool). Sie ergänzen die anderen in PHP 5 eingeführten Typen: Klassennamen, Interfaces, Array und Callable.
Die folgende Zeile
function is_super_admin( $user_id = false ) { . . . .
gibt nicht den Typ des Parameters an. Wenn es stattdessen wäre:
function is_super_admin( int $user_id = false ) { . . . .
dann würde es einen Fehler produzieren.
Ich vermute, dass es standardmäßig auf false gesetzt ist, da es einfacher ist, mit einem simplen Wert nach einem gültigen Wert zu suchen if
da sowohl false als auch/oder ein int gleich 0 als false ausgewertet wird.
Mehr zu den neuen Funktionen von PHP 7 hier.
Sie erklären nirgendwo, dass der Parameter ein ist
int
warum sollte nicht es funktioniert?– verzeihen
♦
24. Juli 2017 um 8:50 Uhr
PHP ist dynamisch typisiert. Sie können Argumente verschiedener Typen übergeben, es sei denn, es wird ausdrücklich etwas anderes angegeben. In diesem speziellen Fall können Sie grundsätzlich alles passieren.
– Mjh
24. Juli 2017 um 8:50 Uhr
Lesen Sie mehr über Typ Jonglieren in PHP.
– axiak
24. Juli 2017 um 8:50 Uhr
is_super_admin()
ist eine benutzerdefinierte Funktion in WordPress. Sie finden diese Funktion in der Datei/wp-includes/capabilities.php
. PHP-Funktionsargumente sind dynamisch typisiert, wenn Sie sie nicht als strikt typisiert deklarieren. In diesem Funktionsargument$user_id
ist dynamisch.$user_id
kann alle Arten von DataType akzeptieren.– Beschwöre Sarker
24. Juli 2017 um 9:06 Uhr