Pendant le développement de PHP, la conversion de type est une opération commune. En tant qu'outil commun pour convertir les variables en chaînes, la fonction Strval a des performances différentes pour différents types de valeurs. Que se passe-t-il lorsque nous utilisons Strval pour traiter les valeurs nulles ? À quels détails avons-nous besoin pour prêter une attention particulière? Cet article discutera de cette question.
La fonction de la fonction Strval est de convertir les paramètres passés en type de chaîne, et sa signature de fonction est la suivante:
strval(mixed $value): string
Il reçoit tout type de paramètre et renvoie la représentation de la chaîne de ce paramètre.
Lorsque le paramètre est nul , Strval le convertit en une chaîne vide.
Les exemples sont les suivants:
<?php
$value = NULL;
$result = strval($value);
var_dump($result); // string(0) ""
?>
Résultat de sortie:
string(0) ""
Autrement dit, Null est converti en une chaîne vide "" .
Les règles de conversion de type interne stipulent:
NULL est converti en une chaîne correspondant à une chaîne vide.
D'autres types de conversions sont effectuées en fonction de leurs règles respectives.
Il s'agit également du traitement tolérant par PHP de Null , qui facilite les développeurs pour éviter les erreurs causées par la sortie directe ou l'épissage des valeurs nulles .
Bien que Strval (null) renvoie une chaîne vide, les points suivants doivent toujours être notés à une utilisation réelle:
Utilisez directement le concaténeur de chaîne . Lors de la connexion NULL , PHP convertira automatiquement NULL en une chaîne vide.
<?php
$value = NULL;
echo "Value is: " . $value; // Sortir Value is:
?>
Par conséquent, le comportement de Strval est cohérent avec l'opération de concaténation des cordes.
L'utilisation directement de l'écho ou de l'impression pour sortir NULL sortira également une chaîne vide et ne lancera pas d'erreur.
<?php
$value = NULL;
echo $value; // 不Sortir任何内容
?>
La chaîne vide "" obtenue à l'aide de strval (null) est la même que la variable de chaîne vide réelle:
<?php
var_dump(strval(NULL) === ""); // bool(true)
?>
Cependant, les chaînes NULL et vides sont essentiellement différents types de valeurs, en particulier dans les jugements de type stricte ou les opérations de base de données.
Si un tableau ou un objet est accidentellement transmis à Strval , un avertissement ou une erreur sera déclenché.
Par exemple:
<?php
$arr = [];
echo strval($arr); // Warning: Array to string conversion
?>
Par conséquent, c'est une bonne habitude de s'assurer que les paramètres transmis à Strval ne sont pas des tableaux ou des objets non convertibles.
Lorsque vous utilisez le résultat de Strval (NULL) pour l'épissage d'URL ou la sortie HTML, une chaîne vide peut provoquer des paramètres manquants de la liaison ou des attributs de balises incomplètes. Il est recommandé de juger ou d'attribuer une valeur par défaut à l'avance.
<?php
// NULLTourner la corde
$nullValue = NULL;
echo "Using strval: '" . strval($nullValue) . "'\n"; // Sortir ''
// 直接SortirNULL
echo "Direct echo: '" . $nullValue . "'\n"; // Sortir ''
// Égalité du juge
var_dump(strval($nullValue) === ""); // bool(true)
// Exemple d'avertissement
$arrayValue = [];
// echo strval($arrayValue); // Déclenchera un avertissement:Array to string conversion
?>