Expanded class hierarchy of Twig_Node_Expression_Array
class Twig_Node_Expression_Array extends Twig_Node_Expression {
protected $index;
public function __construct(array $elements, $lineno) {
parent::__construct($elements, array(), $lineno);
$this->index = -1;
foreach ($this
->getKeyValuePairs() as $pair) {
if ($pair['key'] instanceof Twig_Node_Expression_Constant && ctype_digit((string) $pair['key']
->getAttribute('value')) && $pair['key']
->getAttribute('value') > $this->index) {
$this->index = $pair['key']
->getAttribute('value');
}
}
}
public function getKeyValuePairs() {
$pairs = array();
foreach (array_chunk($this->nodes, 2) as $pair) {
$pairs[] = array(
'key' => $pair[0],
'value' => $pair[1],
);
}
return $pairs;
}
public function hasElement(Twig_Node_Expression $key) {
foreach ($this
->getKeyValuePairs() as $pair) {
// we compare the string representation of the keys
// to avoid comparing the line numbers which are not relevant here.
if ((string) $key == (string) $pair['key']) {
return true;
}
}
return false;
}
public function addElement(Twig_Node_Expression $value, Twig_Node_Expression $key = null) {
if (null === $key) {
$key = new Twig_Node_Expression_Constant(++$this->index, $value
->getLine());
}
array_push($this->nodes, $key, $value);
}
/**
* Compiles the node to PHP.
*
* @param Twig_Compiler A Twig_Compiler instance
*/
public function compile(Twig_Compiler $compiler) {
$compiler
->raw('array(');
$first = true;
foreach ($this
->getKeyValuePairs() as $pair) {
if (!$first) {
$compiler
->raw(', ');
}
$first = false;
$compiler
->subcompile($pair['key'])
->raw(' => ')
->subcompile($pair['value']);
}
$compiler
->raw(')');
}
}
Name | Modifiers | Type | Description | Overrides |
---|---|---|---|---|
Twig_Node:: |
protected | property | ||
Twig_Node:: |
protected | property | ||
Twig_Node:: |
protected | property | ||
Twig_Node:: |
protected | property | ||
Twig_Node:: |
public | function | ||
Twig_Node:: |
public | function | Gets an attribute. | |
Twig_Node:: |
public | function | ||
Twig_Node:: |
public | function |
Overrides Twig_NodeInterface:: |
|
Twig_Node:: |
public | function | Gets a node by name. | |
Twig_Node:: |
public | function |
Overrides Twig_NodeInterface:: |
|
Twig_Node:: |
public | function | Returns true if the attribute is defined. | |
Twig_Node:: |
public | function | Returns true if the node with the given identifier exists. | |
Twig_Node:: |
public | function | Removes an attribute. | |
Twig_Node:: |
public | function | Removes a node by name. | |
Twig_Node:: |
public | function | Sets an attribute. | |
Twig_Node:: |
public | function | Sets a node. | |
Twig_Node:: |
public | function | ||
Twig_Node:: |
public | function | ||
Twig_Node_Expression_Array:: |
protected | property | ||
Twig_Node_Expression_Array:: |
public | function | ||
Twig_Node_Expression_Array:: |
public | function |
Compiles the node to PHP. Overrides Twig_Node:: |
|
Twig_Node_Expression_Array:: |
public | function | ||
Twig_Node_Expression_Array:: |
public | function | ||
Twig_Node_Expression_Array:: |
public | function |
Constructor. Overrides Twig_Node:: |