PHP 意外T_Variable实际上并不存在


PHP Unexpected T_Variable that doesn't actually exist

所以,我试图编写一个PHP身份验证系统,但我无法在不出现错误的情况下运行它。具体来说,它说以下内容:

Parse error: syntax error, unexpected '$name' (T_VARIABLE) in C:'Apache24'htdocs'struct'general'resources'root~index'User.php on line 6

然后我查了一下,发现这个错误很常见。然而,我的不同之处在于"$name"变量实际上并不存在。实际上,第 6 行是函数的右括号。以下是完整的代码:

<?php
include 'User.php';
function sha512($data){
return hash('sha512', $data);
}//This is line 6
?> 
<html><head><title>Login</title></head><body background="/struct/general/resources/root~index/images/Pig.jpg"<p>Your request is being processed.     Please Wait...</p><br />
<?php
$username = htmlspecialchars($_POST['__INPUT_2']);
$passwordhash = sha512(htmlspecialchars($_POST['__INPUT_1']));
$user_file_path = $_SERVER['DOCUMENT_ROOT'] . '/struct/data/user/data';
$isUser = file_exists($user_file_path . $username . '$' . $passwordhash);

$user = new User($username, $passwordhash);
?>

顺便说一下,我有点像PHP的初学者,所以我不确定我是否正确匹配了所有约定。无论如何,我的问题是:当名为"$name"的神秘变量在我的代码范围内不存在时,为什么我会收到有关该变量的错误,我应该如何解决这个问题?

PHP错误报告在它所陈述的内容中是精确的。PHP 不会说谎,即使代码中的实际问题不是 PHP 在错误中指出的错误和/或行。

即在第 200 行意外结束。可能是第 140 行缺少的花括号。您需要阅读有关错误的信息,在此处和Google中搜索它们。

PHP错误中的"意外"任何内容通常是直接切割的,因为它在错误中提到的任何内容之前都期待某些东西。
在这种情况下,unexpected '$name' (T_VARIABLE),您的$name变量不是预期的,PHP 期望右括号、逗号或分号来结束前一行,其他东西。

查看文件 User.php 中的第 6 行。如果该行绝对没问题,则错误在它之前,同样,可能是前一行缺少分号。