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é

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

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

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

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

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

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

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

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

<?php
  foreach ($company->departments as $department) {
	// ...
  }
?>
<?php
  $company->departments[0]->name = 'Emerging Technologies';
  $dept_name = $company->departments[0]->name;
?>
<?php
  $company['departments'][0]['name'] = 'Emerging Technologies';
  $dept_name = $company['departments'][0]['name'];
?>
<?php
  $jane_doe = $company["departments[1]/employees[2]"];
?>
<?php
  $jane_doe = $company["departments.0/employees.1"];
?>
<?php
 $ad_tech_mgr = 
  $company["departments[name='Advanced Technologies']/employees[manager=true]"];
?>

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

<?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

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

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

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

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

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

Exemple #14 Accès via l'index 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.

LoadingChargement en cours