如果在会话中检查customer_id,我有一个简单的方法。
<?php if($this->Session->read('customer_id')){ ?>
<?php echo $this->element('watchlist'); ?>
<? } else { ?>
<?php echo $this->element('recently_sold'); ?>
<?php } ?>
这很简单,但是当我访问该页面时,customer_id为null,并且两个元素都不显示。当我登录时,显示元素。这里的逻辑真的很奇怪,我不知道从哪里开始。我尝试检查null并使用is_numeric,但仍然是相同的结果。有没有人在这样的本地环境会议上遇到任何问题?
由于
答案 0 :(得分:2)
您的PHP设置是否识别PHP 短标记 <? ... ?>
而不是<?php ... ?>
?
如果没有,那么你的} else {
语句将不被识别为PHP,因此当if语句为真时,两个echo都会发生(你应该看到“&lt;?} else {?&gt ;“如果仔细观察,请在源代码中以文本形式打印出来。”
就像@Chris Hendy上面说的那样,无缘无故地打开和关闭PHP标签令人困惑。
不应使用短标签,因为它们是服务器设置,并且大多数服务器默认情况下不启用它们。从PHP 5.4开关上有短标签,区别在于“echo short tag”