Poo - parameterholder class

Contenu du snippet

Une classe générique gérant des paramètres qui sont accessibles sous forme de tableaux ou de propriétés.

Source / Exemple :


<?php
/**

  • Class ParameterHolder provides a base class for managing parameters.
* class ParameterHolder extends ArrayObject { /**
  • Constructs an instance of ParameterHolder.
*
  • @param array $parameters Optional, an array of parameters as key/value
  • pair.
  • @return void
  • /
public function __construct(array $parameters = array()) { parent::__construct($parameters, parent::ARRAY_AS_PROPS); } /**
  • Sets the value at the specified index.
*
  • @param string $index The index being set.
  • @param mixed $value The value for the index.
  • @return void
  • /
public function offsetSet($index, $value) { if (is_array($value)) { $value = new static($value); } parent::offsetSet($index, $value); } /**
  • Returns the value at the specified index.
*
  • @param string $index The index with the value.
  • @return mixed Returns the value at the specified index or FALSE.
  • /
public function offsetGet($index) { $value = parent::offsetGet($index); if (is_array($value)) { $this->offsetSet($index, $value); return parent::offsetGet($index); } return $value; } } // Example: $initParams = array('third_section' => array('php_version' => PHP_VERSION)); $parameterHolder = new ParameterHolder($initParams); $parameterHolder['first_section'] = array(); $parameterHolder['first_section']['one'] = 1; $parameterHolder['first_section']['two'] = 2; $parameterHolder->second_section = array(); $parameterHolder->second_section->path = '/path/to/something'; $parameterHolder->second_section->url = 'http://php.net/'; // prints: 1 echo $parameterHolder->first_section->one; // prints: /path/to/something echo $parameterHolder['second_section']['path']; // prints: 5.3.0 echo $parameterHolder->third_section->php_version; // prints: 5.3.0 echo $parameterHolder['third_section']['php_version']; // prints: bool(true) var_dump(isset($parameterHolder->second_section->path)); unset($parameterHolder->second_section->path); // prints: bool(false) var_dump(isset($parameterHolder->second_section->path)); // prints: //ParameterHolder Object //( // [storage:ArrayObject:private] => Array // ( // [third_section] => ParameterHolder Object // ( // [storage:ArrayObject:private] => Array // ( // [php_version] => 5.3.0 // ) // ) // [first_section] => ParameterHolder Object // ( // [storage:ArrayObject:private] => Array // ( // [one] => 1 // [two] => 2 // ) // ) // [second_section] => ParameterHolder Object // ( // [storage:ArrayObject:private] => Array // ( // [url] => http://php.net/ // ) // ) // ) //) print_r($parameterHolder); ?>

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.