Maison > développement back-end > Problème PHP > Parlons de la conversion entre les objets php et les tableaux

Parlons de la conversion entre les objets php et les tableaux

PHPz
Libérer: 2023-04-19 14:09:42
original
526 Les gens l'ont consulté

PHP est un langage de programmation largement utilisé. Il s'agit d'un langage open source, multiplateforme et orienté objet. PHP présente les caractéristiques de vitesse élevée, de simplicité, de flexibilité, de facilité d'apprentissage et d'utilisation, etc., il est donc largement utilisé dans le développement de sites Web, le traitement de données, le traitement d'images et d'autres domaines.

En PHP, les objets et les tableaux sont des types de données couramment utilisés. Pour un développeur, si vous devez effectuer une conversion entre des objets et des tableaux, vous rencontrerez probablement des problèmes. Par conséquent, développer une fonction objet-tableau PHP ou une bibliothèque de classes apportera une grande commodité aux développeurs.

Afin de résoudre ce problème, nous pouvons d'abord étudier les concepts de base, les méthodes d'utilisation et les méthodes de conversion entre les objets et les tableaux PHP.

1. Concepts de base et utilisation des objets PHP

En PHP, un objet fait référence à un type de variable qui stocke les données et les fonctions associées. Nous pouvons définir un objet via une classe, puis utiliser l'opérateur new pour créer une instance d'objet. Les objets utilisent le symbole "->" pour accéder à leurs propriétés et méthodes.

//定义一个类
class Person {
  public $name;
  public $age;
  function __construct($name, $age) {
    $this->name = $name;
    $this->age = $age; 
  }
  function sayHello() {
    echo "Hello, my name is " . $this->name . " and I am " . $this->age . " years old."; 
  }
}

//创建一个对象
$person = new Person("John Doe", 30);

//访问对象属性和方法
echo $person->name; //输出John Doe
$person->sayHello(); //输出Hello, my name is John Doe and I am 30 years old.
Copier après la connexion

2. Concepts de base et utilisation des tableaux PHP

En PHP, un tableau fait référence à une collection ordonnée de paires clé-valeur. Les tableaux peuvent stocker des valeurs de différents types de données, tels que des entiers, des chaînes, des objets, etc. Nous pouvons créer un tableau via la fonction array() puis accéder aux valeurs via des clés.

//创建一个数组
$cars = array("Volvo", "BMW", "Toyota");

//访问数组元素
echo $cars[0]; //输出Volvo
Copier après la connexion

3. Comment convertir des objets PHP en tableaux

1. Grâce à la conversion de type forcée

Nous pouvons utiliser la conversion de type forcée pour convertir des objets en tableaux. Lorsqu'un objet est converti en tableau, les noms de propriétés deviennent les clés du tableau et les valeurs des propriétés deviennent les valeurs du tableau.

//定义相同的Person类
class Person {
  public $name;
  public $age;
  function __construct($name, $age) {
    $this->name = $name;
    $this->age = $age; 
  }
}

//创建一个对象
$person = new Person("John Doe", 30);

//将对象强制类型转换为数组
$array = (array)$person;

//输出转换后的数组
print_r($array);
Copier après la connexion

Sortie :

Array
(
    [name] => John Doe
    [age] => 30
)
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion

2. Implémenté via des méthodes objet

Nous pouvons ajouter une méthode dans la classe personnalisée pour convertir l'objet en tableau. Dans cette méthode, nous pouvons utiliser la propre fonction get_object_vars() de PHP pour obtenir tous les attributs et valeurs de l'objet, puis les enregistrer dans un nouveau tableau.

//定义Person类
class Person {
  public $name;
  public $age;
  function __construct($name, $age) {
    $this->name = $name;
    $this->age = $age; 
  }
  function toArray() {
    return get_object_vars($this);
  }
}

//创建一个对象
$person = new Person("John Doe", 30);

//将对象转换为数组
$array = $person->toArray();

//输出转换后的数组
print_r($array);
Copier après la connexion

Sortie :

Array
(
    [name] => John Doe
    [age] => 30
)
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion

IV. Méthode de conversion d'un tableau PHP en objet

1 Grâce à une conversion de type forcée

Nous pouvons utiliser la conversion de type forcée pour convertir le tableau en objet. Lorsqu'un tableau est converti en un objet, les clés du tableau deviennent les noms de propriété de l'objet et les valeurs correspondant aux clés deviennent des valeurs de propriété.

//创建一个数组
$array = array(
  "name" => "John Doe",
  "age" => 30
);

//将数组强制类型转换为对象
$object = (object)$array;

//访问对象属性
echo $object->name; //输出John Doe
Copier après la connexion

2. Grâce au constructeur et à l'affectation des attributs de la classe

Nous pouvons créer une classe, puis attribuer des valeurs aux attributs dans le constructeur de la classe, et enfin obtenir l'effet de convertir le tableau en objet.

//定义Person类
class Person {
  public $name;
  public $age;
  function __construct($array) {
    $this->name = $array['name'];
    $this->age = $array['age'];
  }
}

//创建一个数组
$array = array(
  "name" => "John Doe",
  "age" => 30
);

//将数组转换为对象
$person = new Person($array);

//访问对象属性
echo $person->name; //输出John Doe
Copier après la connexion

5. Objet PHP en fonctions de tableau et bibliothèques de classes

Bien que nous ayons appris à convertir manuellement des objets et des tableaux, lors du développement de grands projets, la conversion manuelle peut être très lourde. Par conséquent, nous pouvons utiliser les fonctions objet pour tableau et les bibliothèques de classes fournies par PHP pour réduire la difficulté de développement.

1. Utilisez la fonction get_object_vars() de PHP

PHP fournit la fonction get_object_vars() pour obtenir tous les attributs et valeurs de l'objet. Nous pouvons combiner cette fonction pour développer une fonction qui convertit les objets en tableaux.

function objectToArray($object) {
  if (!is_object($object) && !is_array($object)) {
    return $object;
  }
  if (is_object($object)) {
    $object = get_object_vars($object);
  }
  return array_map('objectToArray', $object);
}

//创建一个对象
$person = new Person("John Doe", 30);

//将对象转换为数组
$array = objectToArray($person);

//输出转换后的数组
print_r($array);
Copier après la connexion

Sortie :

Array
(
    [name] => John Doe
    [age] => 30
)
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion

2. Utilisez la fonction json_encode() de PHP

Nous pouvons utiliser la fonction json_encode() de PHP pour convertir des objets ou des tableaux en chaînes au format JSON, puis convertir les chaînes JSON en tableaux. Cette approche convient aux conversions simples d’objets et de tableaux.

//创建一个对象
$person = new Person("John Doe", 30);

//将对象转换为数组
$array = json_decode(json_encode($person), true);

//输出转换后的数组
print_r($array);
Copier après la connexion

Sortie :

Array
(
    [name] => John Doe
    [age] => 30
)
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion

3. Utilisation du composant Symphony VarDumper

Symfony est un framework PHP qui contient certains composants PHP. Le composant VarDumper peut nous aider à convertir les variables PHP dans un format plus lisible. Le composant VarDumper fournit une classe VarDumper Nous pouvons utiliser les méthodes de cette classe pour implémenter la fonction de conversion d'objets en tableaux.

use Symfony\Component\VarDumper\VarDumper;

//创建一个对象
$person = new Person("John Doe", 30);

//将对象转换为数组
$array = VarDumper::castToArray($person);

//输出转换后的数组
print_r($array);
Copier après la connexion

Sortie :

Array
(
    [name] => John Doe
    [age] => 30
)
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion

6. Résumé

À mesure que l'application continue de se développer et de s'étendre, nous devrons peut-être effectuer une conversion entre les objets et les tableaux en PHP. Cet article présente diverses méthodes telles que la conversion manuelle, les fonctions propres à PHP et les bibliothèques de classes tierces. Ces méthodes peuvent nous permettre de résoudre plus efficacement le problème de conversion entre objets et tableaux. Dans le développement réel, nous pouvons choisir la méthode appropriée pour convertir entre objets et tableaux en fonction des besoins réels.

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!

source:php.cn
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal