【问题标题】:where is wrong in my php code?我的 php 代码哪里错了?
【发布时间】:2010-05-31 04:38:24
【问题描述】:

'.{$row['MemberName']}.'';?>

";?>

解析错误:语法错误,意外的 T_STRING,需要 ',' 或 ';'在 C:\xampp\htdocs\home - Copy\membercopy.php 第 141 行

我真的不知道哪里出错了。请帮忙,

【问题讨论】:

  • (1) 空白。不仅对于使您的问题在此处可读,而且对于使您的代码可维护以使人们不必滚动阅读它至关重要。 (2) bgcolor -- 几乎总是建议使用 CSS 来引入颜色。您已经将 HTML 代码与 PHP 代码混合在一起,不要将样式格式与标记混合在一起。 (3) 你的问题在语法上不正确。我猜“我的 PHP 代码有什么问题?”可能接近你想要的。 (4) 也就是说,更具体地描述您的代码应该在该主题中执行的操作可能会获得更多视图。
  • 好机会英语不是这个家伙的第一语言。你不能因此而抨击某人。或者他是美国公立学校的产物=x
  • 我意识到,在日常互动中,指出某人的语言缺陷会适得其反。但是,如果您在一个英语网站上,并且您对该语言的使用足以掩盖您的意思,那么这是一个值得纠正的问题。 (鉴于问题的标记,很难相信这不是马虎的结果......)

标签: php


【解决方案1】:
<?php 

   echo '<label onclick="window.open('profilephp.php?member=$row['MemberID']','mywindow')">'{$row['MemberName']}.'</label>';

?>

如果你看那行,你会发现你的单引号字符串里面有单引号。此外,您正在尝试在单引号字符串中使用变量,这是行不通的。您想将其更改为:

   echo "<label onclick=\"window.open('profilephp.php?member={$row['MemberID']}','mywindow')\">'{$row['MemberName']}.'</label>";

请注意,我已将您的字符串双引号,然后用反斜杠转义了引号字符串中的任何双引号。

我还在字符串中的第一个复杂变量周围添加了 {},因为如果没有它,它会给你一个错误。

【讨论】:

    【解决方案2】:

    错误是未转义的单引号和大括号。你这样写:

    <?php echo '<label onclick="window.open('profilephp.php?member=$row['MemberID']','mywindow')">'.{$row['MemberName']}.'</label>';?>
    

    但必须看起来像这样:

    <?php echo '<label onclick="window.open(\'profilephp.php?member='.$row['MemberID'].'\',\'mywindow\')">'.$row['MemberName'].'</label>';?>
    

    我希望这是你所需要的。

    【讨论】:

    • Doplh Mathews,感谢您的回答,这正是我以前的做法。
    【解决方案3】:

    这解决了您的代码的大部分问题(甚至可读!):

    <td style="text-align: center; background-color: #FFFFFF;">
       <label onclick="window.open('profilephp.php?member=<?php=$row['MemberID']?>','mywindow')">
          <?php=$row['MemberName']?>
       </label>
       <br />
       <img src="<?php=$row['MemberImg']?>" width="100" height="100" alt="" />
    </td>
    

    【讨论】:

    • 这会抛出错误。 JS 包含一个不带引号的字符串(我假设您没有要使用三元运算的带有 php 属性的 profilephp 对象!
    • 即使它确实有效,“这是一些固定代码”意味着人们必须对其进行分析以找出差异,以确定错误是什么,以便将来避免。跨度>
    • Conspicuous Compiler 和 Erik 已经解释了这些问题 - 重复他们的话是没有意义的。此外,我的代码确实/不包含您提到的未引用字符串问题。但是,我完全错过了有问题的单引号并已将其恢复。