国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

Maison développement back-end Problème PHP Comment convertir un objet en tableau en php

Comment convertir un objet en tableau en php

Apr 23, 2023 pm 07:29 PM

Dans le développement PHP, nous avons souvent besoin de convertir entre des objets et des tableaux. Les scénarios d'application courants nécessitent de convertir des objets en tableaux. PHP fournit de nombreuses méthodes pour terminer ce processus de conversion, la méthode la plus couramment utilisée consiste à convertir l'objet en tableau via un lanceur.

En PHP, lorsque nous convertissons un objet en tableau, le nom de l'attribut de l'objet est automatiquement utilisé comme nom de clé et la valeur de l'attribut est stockée dans le tableau en tant que valeur de clé. Dans le même temps, PHP peut également convertir de manière sélective les propriétés privées, protégées et publiques d'un objet.

Apprenons à convertir des objets en tableaux à travers des exemples?:

class?BlogPost?{
????private?$title;
????private?$content;
????protected?$publishedAt;

????public?function?__construct($title,?$content)?{
????????$this->title?=?$title;
????????$this->content?=?$content;
????????$this->publishedAt?=?date('Y-m-d?H:i:s');
????}
}

$post?=?new?BlogPost('PHP?Object?Convert?Array',?'PHP?中對象轉換數(shù)組的實現(xiàn)');
$array_post?=?(array)?$post;?//?將對象轉換為數(shù)組
print_r($array_post);

Dans l'exemple ci-dessus, nous avons défini une classe BlogPost, qui possède trois attributs?: title, contenu et publishedAt. Parmi eux, title et content sont des propriétés privées, et publishedAt est une propriété protégée. Dans le constructeur de la classe, nous définissons les propriétés $title et $content, et par défaut définissons la propriété $publishedAt à l'heure actuelle. . BlogPost 類,它有三個屬性:titlecontentpublishedAt。其中,titlecontent 是私有屬性,publishedAt 是受保護屬性。在類的構造函數(shù)中,我們設置了 $title$content 屬性,并默認將 $publishedAt 屬性設置為當前時間。

接著,我們實例化了 BlogPost 類,并將它強制類型轉換為數(shù)組 $array_post。最后,我們使用 print_r 函數(shù)打印 $array_post 數(shù)組的內容,可以看到輸出結果如下:

Array
(
????[BlogPosttitle]?=>?PHP?Object?Convert?Array
????[BlogPostcontent]?=>?PHP?中對象轉換數(shù)組的實現(xiàn)
????[*publishedAt]?=>?2021-09-14?15:10:34
)

可以發(fā)現(xiàn),當我們使用 (array) 進行類型轉換時,對象的屬性名會被添加類名作為前綴。這是因為在 PHP 中,相同的屬性名只能出現(xiàn)一次,為了防止屬性名沖突,PHP 自動添加了類名做前綴。同時,我們也可以通過數(shù)組的方式來訪問對象的屬性,比如 echo $array_post['BlogPosttitle']; 可以輸出 PHP Object Convert Array。

需要注意的是,當對象中有私有屬性和受保護屬性時,它們在轉換為數(shù)組后默認是不可訪問的,但是如果我們想將它們添加到數(shù)組中,可以通過 ReflectionClass 類來實現(xiàn):

class?BlogPost?{
????private?$title;
????private?$content;
????protected?$publishedAt;

????public?function?__construct($title,?$content)?{
????????$this->title?=?$title;
????????$this->content?=?$content;
????????$this->publishedAt?=?date('Y-m-d?H:i:s');
????}
}

$post?=?new?BlogPost('PHP?Object?Convert?Array',?'PHP?中對象轉換數(shù)組的實現(xiàn)');

$reflection_class?=?new?ReflectionClass($post);
$properties?=?$reflection_class->getProperties(ReflectionProperty::IS_PUBLIC?|?ReflectionProperty::IS_PROTECTED?|?ReflectionProperty::IS_PRIVATE);?//?獲取所有屬性

$array_post?=?[];
foreach?($properties?as?$property)?{
????$property->setAccessible(true);?//?設置屬性可訪問
????$array_post[$property->getName()]?=?$property->getValue($post);?//?將屬性及屬性值添加到數(shù)組中
}

print_r($array_post);

在上述示例中,我們使用了 ReflectionClassReflectionProperty 類來獲取對象的所有屬性,包括公共屬性、受保護屬性和私有屬性。然后通過 setAccessible() 方法設置屬性可訪問,最終將屬性及屬性值添加到數(shù)組中,輸出結果如下:

Array
(
????[title]?=>?PHP?Object?Convert?Array
????[content]?=>?PHP?中對象轉換數(shù)組的實現(xiàn)
????[publishedAt]?=>?2021-09-14?15:10:34
)

總結來看,PHP 提供了多種方式來將對象轉換成數(shù)組,常用的方式是使用強制類型轉換符 (array)。同時,我們也可以選擇性地將私有屬性和受保護屬性添加到數(shù)組中,可以通過 ReflectionClass

Ensuite, nous instancions la classe BlogPost et la convertissons en un tableau $array_post. Enfin, nous utilisons la fonction print_r pour imprimer le contenu du tableau $array_post. Vous pouvez voir le résultat comme suit?: ??rrreee??Vous pouvez le trouver lorsque nous utilisons <. code>(array) Lors de la conversion de type, le nom d'attribut de l'objet sera préfixé par le nom de classe. En effet, en PHP, le même nom d'attribut ne peut appara?tre qu'une seule fois. Afin d'éviter les conflits de noms d'attribut, PHP ajoute automatiquement le nom de classe comme préfixe. Dans le même temps, nous pouvons également accéder aux propriétés de l'objet via des tableaux, tels que echo $array_post['BlogPosttitle']; qui peut générer un PHP Object Convert Array. ????Il est à noter que lorsqu'il y a des propriétés privées et des propriétés protégées dans l'objet, elles sont inaccessibles par défaut après avoir été converties en tableau, mais si on veut les ajouter au tableau, on peut passer ReflectionClass à réaliser?: ??rrreee??Dans l'exemple ci-dessus, nous avons utilisé les classes <code>ReflectionClass et ReflectionProperty pour obtenir toutes les propriétés de l'objet, y compris les propriétés publiques, protégées propriétés et propriété privée. Définissez ensuite l'accessibilité de l'attribut via la méthode setAccessible(), et enfin ajoutez l'attribut et la valeur de l'attribut au tableau. Le résultat de sortie est le suivant?: ??rrreee??En résumé, PHP propose diverses méthodes. pour convertir des objets en tableau, la méthode courante consiste à utiliser l'opérateur de conversion (array). Dans le même temps, nous pouvons également ajouter sélectivement des propriétés privées et des propriétés protégées au tableau, ce qui peut être réalisé via la classe ReflectionClass. Quelle que soit la méthode utilisée, vous pouvez facilement convertir des objets en tableaux pour un meilleur traitement et une meilleure transmission des données d'objet. ??

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!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefa?on, veuillez contacter admin@php.cn

Outils d'IA chauds

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

échangez les visages dans n'importe quelle vidéo sans effort grace à notre outil d'échange de visage AI entièrement gratuit?!

Article chaud

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

Tutoriel PHP
1502
276