Maison > Article > développement back-end > PHP orienté objet - classes standard intégrées et types de données ordinaires convertis en types d'objet
Il existe de nombreuses "classes prêtes à l'emploi" en PHP, dont l'une est appelée "classe standard intégrée" . Il n'y a rien "à l'intérieur" de cette classe.
class stdclass{ }
<?php$obj1 = new stdclass(); var_dump($obj1);class A{}$obj2 = new A(); var_dump($obj2);?>
Résultat en cours d'exécution :
object(stdClass)[1]object(A)[2]
Vous pouvez voir que ce n'est pas différent de la classe normale.
La classe standard intégrée est utilisée pour stocker certaines données simples temporaires, telles que :
$obj1->pp1 = 1;$obj2->port = '3306';
Elle peut également être utilisée pour stocker des données lors de la conversion de type .
D'autres types de données sont convertis en types d'objet, et le résultat est : un objet de la classe standard intégrée (classe standard) .
La forme syntaxique est :
$obj = (object)其他类型数据;
Convertir le tableau en objet : le nom de clé du tableau est utilisé comme nom d'attribut, et la valeur est la valeur correspondante de l'objet.
Remarque : Les attributs des éléments de données numériques indicés après avoir été convertis en objets ne peuvent pas être obtenus via la syntaxe d'objet, la conversion n'est donc pas recommandée.
<?php $config = array( 'host' => "localhost", 'port' => 3306, 'user' => "root", 'pass' => "123", 'charset' => "utf8", 'dbname' => "yeoman", ); $obj1 = (object)$config; var_dump($obj1); echo "<br />单独取出user:" . $obj1->user;?>
Résultat d'exécution :
object(stdClass)[1] public 'host' => string 'localhost' (length=9) public 'port' => int 3306 public 'user' => string 'root' (length=4) public 'pass' => string '123' (length=3) public 'charset' => string 'utf8' (length=4) public 'dbname' => string 'yeoman' (length=6) 单独取出user:root
Cependant, il y a des éléments d'indice dans le tableau. S'il est converti en objet, il ne peut pas le faire. être obtenu via la syntaxe objet.
<?php $arr = array('pp1' => 1, 5 => 12); $obj2 = (object)$arr; var_dump($obj2); echo "<br />单独取出pp1:" . $obj2->pp1;//echo "<br />单独取出5:" . $obj2->5;//会报错!?>
Résultat d'exécution :
$arr = array('pp1' => 1, 5 => 12); $obj2 = (object) $arr; var_dump($obj2); echo "<br />单独取出pp1:" . $obj2->pp1;//echo "<br />单独取出5:" . $obj2->5;//会报错!?>
null converti en objet : objet vide
$obj = (object)null;
D'autres données scalaires sont converties en objets : le nom de l'attribut est fixe "scalar", et la valeur est le variable La valeur de
<?php$v1 = 1; $v2 = 2.2; $v3 = "abc"; $v4 = true; $objv1 = (object) $v1; //整型转为对象类型 $objv2 = (object) $v2; //浮点型转为对象类型 $objv3 = (object) $v3; //字符串型为对象类型 $objv4 = (object) $v4; //布尔转为对象类型 var_dump($objv1); echo "<br />"; var_dump($objv2); echo "<br />"; var_dump($objv3); echo "<br />"; var_dump($objv4); echo "<br />";
Le résultat courant est :
object(stdClass)[1] public 'scalar' => int 1 object(stdClass)[2] public 'scalar' => float 2.2 object(stdClass)[3] public 'scalar' => string 'abc' (length=3) object(stdClass)[4] public 'scalar' => boolean true
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!