我遇到了一个简单的php foreach属性类(奇数/偶数)到div的麻烦。我认为我有一个语法错误,因为它的工作,但循环没有结束(未捕获的RangeError:最大调用堆栈大小超过在控制台:
<?php
$count = 0;
foreach( $this->boutiques_details as $key => $value){
if ($value->ville == $this->ville) {
echo '<div data-lng="$this->escape($value->longitude)" data-lat=" $this->escape($value->latitude)" class="' . (++$count%2 ? "shop odd" : "shop even") . '">';
?>
<p><b><?php echo $this->escape($value->ville)?></b></p>
<p><?php echo $this->escape($value->quartier)?></p>
<p><?php echo $this->escape($value->adresse)?></p>
<p><?php echo $this->escape($value->num_contact_1)?></p>
</div>
<?php
}
}
?>
谢谢你的帮助!
你要回显的字符串中有一些PHP代码,但PHP不会对其求值,因为它在字符串中:
echo '<div data-lng="$this->escape($value->longitude)" data-lat="$this->escape($value->latitude)" class="' . (++$count%2 ? "shop odd" : "shop even") . '">';
将以上内容替换为以下内容:
echo '<div data-lng="' . $this->escape($value->longitude) . '" data-lat="' . $this->escape($value->latitude) . '" class="' . (++$count%2 ? "shop odd" : "shop even") . '">';
这样,PHP部分(如$this->escape($value->longitude)
)将被PHP识别,它们的结果将被插入到您要echo
的字符串中。
因为你是直接echo
PHP部分,javascript (jQuery)可能识别美元符号($
),试图做一些事情,但不知道如何,并失败了。