Rechercher une fonction PHP

Fixe et Récupère les Valeurs des Propriétés

Les exemples suivants présument que $compagnie est la racine d'un arbre d'objets de données créés depuis le schéma et le document montré ci-dessus.

Exemple #1 Accès via les noms de Propriété

Les propriétés des objets de données peuvent être accédées en utilisant la syntaxe d'accès de propriété d'objet. L'exemple fixe le nom de compagnie à "Acme".

<?php
$company
->name 'Acme';
?>

Exemple #2 Accès via le nom de la propriété en tant que tableau indexé

Nous pouvons également accéder aux propriétés en utilisant un tableau associatif. La forme la plus simple est d'utiliser le nom de la propriété dans le tableau indexé. Par exemple, ce qui suit définit le nom de la compagnie et récupère l'"employeeOfTheMonth".

<?php
$company
['name'] = 'UltraCorp';
$eotm $company['employeeOfTheMonth'];
?>

Exemple #3 Itération d'objet de données

Vous pouvons passer en revue les propriétés d'un objet de données en utilisant l'instruction foreach.

<?php
  $eotm 
$company->employeeOfTheMonth;
  foreach (
$eotm as $name => $value) {
      echo 
"$name$value\n";
  }
?>

Affichera :

name: Jane Doe
SN: E0003

La propriété "manager" n'est pas affichées, car elle n'a pas été spécifiée.

Exemple #4 Accès à une propriété à valeurs multiples par le nom

Les propriétés à valeurs multiples d'un objet de données peuvent être accédées en utilisant la syntaxe des noms de propriétés de l'objet. Ce qui suit récupère la liste des départements.

<?php
$departments 
$company->departments;
?>

Exemple #5 Accès aux éléments à valeurs multiples

Nous pouvons accéder aux éléments individuels des propriétés à valeurs multiples en utilisant la syntaxe des tableaux. Ce qui suit permet d'accéder au premier département de la compagnie.

<?php
$ad_tech_dept 
$company->departments[0];
?>

Exemple #6 Itération d'une propriété à valeurs multiples

Les propriétés à valeurs multiples peuvent être passées en revue en utilisant l'instruction foreach.

<?php
  
foreach ($company->departments as $department) {
    
// ...
  
}
?>

Chaque itération assignera le prochain département de la liste dans la variable $department.

Exemple #7 Accès aux propriétés chaînées

Nous pouvons chaîner les références des propriétés sur une seule ligne. Ce qui suit définit et récupère le nom du premier département.

<?php
  $company
->departments[0]->name 'Emerging Technologies';
  
$dept_name $company->departments[0]->name;
?>

En utilisant la syntaxe des tableaux associatifs, c'est l'équivalent de

<?php
  $company
['departments'][0]['name'] = 'Emerging Technologies';
  
$dept_name $company['departments'][0]['name'];
?>

Dans tous les cas, la variable dept_name est définie à "Emerging Technologies".

Exemple #8 Navigation XPath

Le tableau associatif indexé peut être une expression façon XPath. Les expressions valides sont définies par une sous définition d'XPath.

Deux façons d'indexations de propriétés à valeurs multiples sont supportées. La première est la syntaxe de tableau XPath standard dont l'index commence à 0, la seconde est une extension SDO à XPath avec un index qui commence à 0. La syntaxe standard est :

<?php
  $jane_doe 
$company["departments[1]/employees[2]"];
?>

et la syntaxe de l'extension SDO XPath est :

<?php
  $jane_doe 
$company["departments.0/employees.1"];
?>

Les deux exemples ci-dessus récupèrent le second employé du premier département.

Exemple #9 Requête XPath

Nous pouvons utiliser XPath pour effectuer une requête et ainsi identifier des parties d'un objet de données basé sur des données instanciées. Ce qui suit récupère le manager depuis le département "Advanced Technologies".

<?php
 $ad_tech_mgr 

  
$company["departments[name='Advanced Technologies']/employees[manager=true]"];
?>

Exemple #10 Création d'objets de données fils

Un objet de données peut être une fraction pour ces objets de données fils. Un objet de données fils est automatiquement une partie des données. Ce qui suit ajoute un nouvel employé au département "Advanced Technologies".

<?php
  $ad_tech_dept 
$company["departments[name='Advanced Technologies']"];
  
$new_hire $ad_tech_dept->createDataObject('employees');
  
$new_hire->name 'John Johnson';
  
$new_hire->SN 'E0005';
  
$new_hire->manager false;
?>

Exemple #11 Effacement d'une propriété primitive

Nous pouvons utiliser la fonction isset() et unset() pour tester et effacer des éléments de l'objet de données.

Ce qui suit efface le nom du premier département.

<?php
  
unset($company->departments[0]->name);
?>

Exemple #12 Effacement d'un objet de données

La fonction unset() peut également être utilisée pour effacer un objet de données de l'arbre. L'exemple suivant montre comment John Jones à quitter la compagnie...

<?php
  
unset($company->departments[0]->employees[0]);
?>

Exemple #13 Effacement d'un objet de données référencé

Ce qui suit efface "employeeOfTheMonth" de la compagnie. Si c'est une relation contenue, alors l'employé sera effacé de la compagnie. (probablement pas une bonne idée que d'effacer chaque mois votre meilleur employé !) mais si c'est une relation non-contenue, l'employé référencé restera dans le département de la compagnie, mais ne sera plus accessible via la propriété "employeeOfTheMonth".

<?php
  
if (isset($company->employeeOfTheMonth)) {
    unset(
$company->employeeOfTheMonth);
  }
?>

Exemple #14 Accès via l'index de la propriété

Les propriétés de l'objet de données peuvent être accédées via leurs index en utilisant la syntaxe de tableaux. L'index de la propriété est la position dont la propriété apparaît dans le modèle (dans ce cas, le schéma XML). Nous pouvons voir dans le schéma listé ci-dessus que l'attribut du nom de la compagnie est la seconde propriété de la compagnie (l'interface SDO ne fait pas de distinction entre les attributs XML et les éléments). Ce qui suit va définir le nom de la compagnie en "Acme", avec le même résultat que lors de l'accès via le nom de la propriété.

<?php
  $company
[1] = 'Acme';
?>

L'utilisation directe de l'index dans ce cas est fragile. Normalement, la syntaxe reposant sur le nom de la propriété est préférable, mais l'index des propriétés peut être nécessaire dans des cas très spéciaux.

Rechercher une fonction PHP

Document créé le 30/01/2003, dernière modification le 26/10/2018
Source du document imprimé : https://www.gaudry.be/php-rf-sdo.sample.getset.html

L'infobrol est un site personnel dont le contenu n'engage que moi. Le texte est mis à disposition sous licence CreativeCommons(BY-NC-SA). Plus d'info sur les conditions d'utilisation et sur l'auteur.

Références

  1. Consulter le document html Langue du document :fr Manuel PHP : http://php.net

Ces références et liens indiquent des documents consultés lors de la rédaction de cette page, ou qui peuvent apporter un complément d'information, mais les auteurs de ces sources ne peuvent être tenus responsables du contenu de cette page.
L'auteur de ce site est seul responsable de la manière dont sont présentés ici les différents concepts, et des libertés qui sont prises avec les ouvrages de référence. N'oubliez pas que vous devez croiser les informations de sources multiples afin de diminuer les risques d'erreurs.

Table des matières Haut