PhP未定义变量

时间:2012-05-19 16:39:33

标签: php

好的,所以我试图通过其他人的代码教自己php;有些代码可能已经过时了,但是在我有时间去上学之前,它可以用于完成必需品。我的问题是未定义的变量错误。我此时所能找到的就是如何隐藏错误,但我不想隐藏;如果它被隐藏并不意味着问题已经解决,那就意味着你已经找到了一种方法来忽略它,我认为这是一个很大的不。它出于某种原因给你错误。

我收到错误的行。

<form method=post
      <?php echo "action=\"registration.php?f=".(!$flag)."&amp;s=".$sort."\""; ?> 
      enctype="multipart/form-data" >

然后这就是页面上的问题。

Notice: Undefined variable: flag in C:\wamp\www\info\registration.php on line 236

还有其他相同的东西,但我觉得如果我能学会如何解决这个问题,那么它也将成为其他人的解决方案。如果您需要任何额外信息,请告诉我。提前致谢。对不起这么好看;我只是不想忽视试图在我脸上播放的问题。

3 个答案:

答案 0 :(得分:3)

阅读其他人的代码来学习是一件好事 - 我希望更多的人会这样做;)

PHP是一种“脚本语言”。与C#,C ++或Java等“强类型”语言不同,“脚本语言”几乎可以随时随地开始使用变量。

方便,灵活......但如果在初始化之前启动使用变量,则可能会导致问题。

答案 1 :(得分:3)

要回答您的问题 - 找出$flag在这种情况下应该表示的内容,并相应地进行设置。它看起来像一个布尔值,因此它可能就像在表单呈现之前使用$flag = true;一样简单。但同样,如果你复制了这个,你可能不需要它 - 也许你可以从代码中删除它?

现在我推荐一种风格约定。在您的示例中,您回显action标记的form属性 - 如果该属性依赖于变量,我只会这样做,并且可能不会被使用。

我认为以这种方式做得更清楚:

<form method="post"
      action="registration.php?f=<?php echo !$flag ?>&amp;s=<?php echo $sort ?>"
      enctype="multipart/form-data"
>

你会注意到我把标签包裹在几行上。同样,这是可选的,但可以实现完全有效的标记,并有助于避免编辑器中的水平滚动。此外,您可以更轻松地查看每个属性的起始位置,因为每个属性都有自己的行。

答案 2 :(得分:1)

您正在引用尚未设置的变量(在本例中为$flag)。

基本上$flag没有分配给它的值,所以不存在。在您设置$flag的代码段之前,您的代码中是否有任何地方?