变量正在被重新定义?

时间:2009-06-07 23:56:35

标签: php variables

我目前正在使用复选框在我的PHP应用程序中设置权限。在用户管理页面上,如果用户具有数据库中由1或0定义的权限,则分别选中或取消选中该框。 下面是用于检查是否应该选中该框的代码:

<div><input type="checkbox" tabindex="1" name="permission[$app]" value="1" <? if ($currentperms['newapp'] = "1") {echo " checked ";}?> />New Application</label></div>

有趣的是,在此行之前,echo($currentperms['newapp'])根据数据库中的设置给出0,但是,在此行之后,echo($currentperms['newapp'])给出1,表示变量已更改。

原因是什么?

我已经测试了代码,正是这些行正在重新定义变量,并阻止我完成脚本,因为我无法测试它的功能。

我已经检查了$currentperms['newapp'] = "0"

数组([userid] =&gt; 1 [ptodo] =&gt; 1 [usercp] =&gt; 1 [pm] =&gt; 1 [bug] =&gt; 1 [abug] =&gt; 1 [admincp] =&gt; 1 [intmgs] =&gt; 1 [adduser] =&gt; 1 [pass] =&gt; 1 [useredit] =&gt; 1 [listuser] =&gt; 1 [newapp] =&gt; 0)

2 个答案:

答案 0 :(得分:3)

我相信=是php中的赋值运算符。您需要使用==,即等号运算符。

尝试从

更改测试
<? if ($currentperms['newapp'] = "1") {echo " checked ";}?>

<? if ($currentperms['newapp'] == "1") {echo " checked ";}?>

答案 1 :(得分:1)

单个=赋值,而双= =比较值。你需要使用==。

另外......我假设你正在做xhtml 1.0严格,因为你有一个自我关闭的输入。

正确的xhtml标记是<input type="checkbox" checked="checked">。您的代码将输出<input type="checkbox" checked>