我在使用简单的 php foreach 属性类(奇数/偶数)到 div 时遇到了麻烦。我认为我有一个合成错误,因为它可以工作,但循环没有结束(未捕获的范围错误:控制台中超出了最大调用堆栈大小:
<?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 识别,并且它们的结果将插入到您所在的字符串中 回显
ing。
因为您直接echo
ing PHP 部分,javascript (jQuery) 可能识别了美元符号 ($
),尝试用它做一些事情但没有知道怎么做,但失败了。
关于javascript - foreach() 触发 'Uncaught RangeError: Maximum call stack size exceeded',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23488819/