0

如果在会话中检查 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 并使用 is_numeric,但结果仍然相同。有没有人对他们的本地环境中的会话有任何问题?

谢谢

4

1 回答 1

2

您的 PHP 设置是否识别 PHP短标签 <? ... ?>而不是<?php ... ?>

如果不是,那么您的} else {语句将不会被识别为 PHP,因此当 if 语句为真时,两个 echo 都会发生(并且您应该在源代码中看到“<?} else {?>”打印为文本如果你仔细看)。

就像@Chris Hendy 上面所说的那样,无缘无故地打开和关闭 PHP 标记是令人困惑的。

不应使用短标签,因为它们是服务器设置,并且大多数服务器默认情况下没有启用它们。从 PHP 5.4 开始,短标签在一个开关上,不同之处在于“回显短标签”

于 2013-05-20T17:21:56.363 回答