class Twig_Node_Expression_Array in Zircon Profile 8
Same name and namespace in other branches
- 8.0 vendor/twig/twig/lib/Twig/Node/Expression/Array.php \Twig_Node_Expression_Array
Hierarchy
- class \Twig_Node implements Twig_NodeInterface
- class \Twig_Node_Expression
- class \Twig_Node_Expression_Array
- class \Twig_Node_Expression
Expanded class hierarchy of Twig_Node_Expression_Array
File
- vendor/
twig/ twig/ lib/ Twig/ Node/ Expression/ Array.php, line 11
View source
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);
}
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(')');
}
}
Members
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 value by name. | |
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 name exists. | |
Twig_Node:: |
public | function | Removes an attribute by name. | |
Twig_Node:: |
public | function | Removes a node by name. | |
Twig_Node:: |
public | function | Sets an attribute by name to a value. | |
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:: |