2013-03-15 116 views
0

我在我的公司服务器使用非常简单的代码PHP 5.3.3是否会忽略我的代码或什么?

<? if ($_GET["end"]=='1') { ?> 
    <div id="header-message"> 
     this is the message 
    </div> 
<? } ?> 

代码被忽略,浏览器显示我的个人服务器上的DIV

除非变量$到底是不显示的消息!=“”

我有困难时间什么可以导致这个问题......是phph 5.3.3 vs 5.4的区别?要不然?或者可能代码错误?

+3

你有没有试图改变'<?''到<?php'? – j08691 2013-03-15 20:33:43

+0

公司服务器上是否启用了PHP?在浏览器中查看生成页面的源代码,如果您仍然看到“<?”,那么它不会被解析。 – 2013-03-15 20:33:48

+0

检查您的['short_open_tag'](http://us.php.net/manual/en/ini.core.php#ini.short-open-tag)设置。 – DCoder 2013-03-15 20:34:06

回答

2

最有可能的原因是,你错过了你的php标签的php部分。

<? if ($_GET["end"]=='1') { ?> 
    <div id="header-message"> 
     this is the message 
    </div> 
<? } ?> 

变为

<?php if ($_GET["end"]=='1') { ?> 
    <div id="header-message"> 
     this is the message 
    </div> 
<?php } ?> 

UPDATE

正如其他人所指出的,第一个选项是有效的,如果你对short_open_tag指令。请注意,从PHP 5.4.0开始,您不需要指定short_open_tag指令。

+0

第一种是可接受的语法,但它需要'short_open_tag'开启。 – ceejayoz 2013-03-15 20:35:18

+0

@ceejayoz谢谢。我用链接和解释更新了答案。 – Kyle 2013-03-15 20:39:10

0

试试这个:if($ _GET [“end”] == 1)而不是'1'..如果你的php.ini允许短标签,他的代码也应该可以工作。

也许在一个案例中读为整数,在另一个案例中作为字符串读取。

0

1表示true但“1”是string'1'。因此,您只使用1true进行检查。

并使用完整的标签而不是<?php ... ?><? ... ?>