为什么<! - ?在PHP无法正常工作?

时间:2016-01-11 03:57:57

标签: php yii

我有这段代码:

<?php echo $form->fileField($model, 'avatar_url', array('style' => 'display:none')) ?>
<a href="#" class="thumbnail" style="width: 96px" id="avatar">
<?php if (empty($model->avatar_url)) { ?>
    <img data-src="holder.js/96x96" id="avatar-img">
<?php } else { ?>
    <img src="<?= Yii::app()->baseUrl . $model->avatar_url ?>" id="avatar-img">
<?php } ?>

当我将<?php替换为<?时,代码无效,浏览器显示错误。

  

PHP notice未定义的变量:class

也许我错过了PHP的扩展程序?

3 个答案:

答案 0 :(得分:4)

听起来你需要在你的php.ini中启用short_open_tag。 在php.ini中找到行short_open_tag并将值设置为1

short_open_tag = 1

进行更改后,重新启动Web服务器。

在此处阅读更多内容:http://php.net/manual/en/ini.core.php#ini.short-open-tag

  

<强> short_open_tag的值为

     

告诉PHP是否应该允许PHP的开放标记的缩写形式(<? ?>)。如果要将PHP与XML结合使用,可以禁用此选项以使用<?xml ?>内联。否则,您可以使用PHP打印它,例如:<?php echo '<?xml version="1.0"?>'; ?>。此外,如果禁用,则必须使用PHP开放标记的长格式(<?php ?>)。

答案 1 :(得分:3)

在PHP5中,<?不再允许。我们总是应该使用<?php。顺便说一句,你可以做一些技巧。但<?php是一种很好的做法,所以不要离开它。

答案 2 :(得分:2)

虽然技术上<?可以与PHP一起使用considered best practice,但总是使用<?php