Я в процессе переноса через Liquid с PHP на Coldfusion. У меня есть некоторые проблемы, так как в PHP вы можете передавать массивы по ссылке, где в ColdFusion вы не можете сделать это. Что мне интересно, если у кого-то есть опыт перевода PHP в ColdFusion, и он сталкивался с этой проблемой и каким решением он обошел ее.
В качестве примера моей проблемы рассмотрим следующее:
class LiquidTagIf extends LiquidDecisionBlock
{
private $_nodelistHolders = array();
private $_blocks = array();
public function __construct($markup, &$tokens, &$file_system)
{
$this->_nodelist = &$this->_nodelistHolders[count($this->_blocks)];
array_push($this->_blocks, array(
'if', $markup, &$this->_nodelist
));
parent::__construct($markup, $tokens, $file_system);
}
строки, которые у меня возникают проблемы при переводе, это:
$this->_nodelist = &$this->_nodelistHolders[count($this->_blocks)];
и этот:
'if', $markup, &$this->_nodelist
Все три из этих переменных ( _nodelist , _nodelistHolders , _blocks ) являются массивами. * _nodelistHolders и _blocks объявлены в LiquidTagIf классе, _nodelist объявлены в родительском классе с именем LiquidTag (цепочка наследования - LiquidTagIf -> LiquidDecisionBlock -> LiquidBlock -> LiquidTag)