PHP:函数内部的代码注释阻止它工作

时间:2011-01-11 14:47:27

标签: php

$query = $connect->prepare("SELECT firstname, lastname FROM users WHERE id = '$id'");

$query->execute();

$row = $query->fetch();

// $full_name = $row["firstname"] . " ".$row["lastname"];

$full_name = $row["firstname"] . " ".substr($row["lastname"], 0, 1).".";

return $full_name;

如果我删除作为注释(//)的行,它将返回$ full_name,如果它在那里它然后它不会工作。我也尝试使用#进行评论,但是只要有代码评论它仍然无法工作(不会返回任何内容)

奇怪的问题

5 个答案:

答案 0 :(得分:2)

我唯一可以想到的是,如果它真的是代码:检查编辑器中的换行符设置或尝试在另一个编辑器中打开它。也许php解析器在一行中看到它。 但我不这么认为。

答案 1 :(得分:1)

您的评论不应对执行产生任何影响。

您是否尝试过打开所有错误处理? var_dump($ row)的内容是什么? ?

答案 2 :(得分:1)

从未发生在我身上......很奇怪。

尝试在//之后添加一些文字,或者将所有内容放在另一种评论代码

之间

/* the code */

答案 3 :(得分:1)

这应该是基本调试(以及文字健全性检查),但我会将其作为答案发布;首先打开所有错误,然后:

echo 'before: ' . $full_name;
// $full_name = $row["firstname"] . " ".$row["lastname"];
echo 'after' . $full_name;

我确实意识到这是疯了!评论是评论,不会对您的输出产生任何影响。

由于尚未定义echo变量,因此$full_name都应触发警告;但是,如果两者都打印出来,你会知道(我们都知道)问题不在于评论本身......(此时,我的猜测是$full_name = " ";,因为$query->fetch();返回{{} 1}} ...)

现在,如果false没有执行:你确定你正在调用完全相同的函数吗?你有没有拼错它或碰巧有错误?

答案 4 :(得分:1)

尝试检测奇怪的不可见字符。在linux上我用“cat -e file.php”来做。

对于所有奇怪的语法错误 - 因为一行文件我试试。

测试它的另一种方法。删除$ row = ...和$ full_name = ...之间的所有行,然后重做您的注释行(不粘贴,重新输入)。