解析错误:语法错误:意外';'在第25行

时间:2012-02-21 19:17:40

标签: php parse-error

现在我只需要找出为什么它说老版本每次即使$ a = true 如果a为真,它应该执行if块而不执行其他操作。也许版本需要是一个post变量我会尝试

<?php
$launcherv = "13";
$gamev = "1326382442000";
$sessid = math.rand(1, 1000000000000000);
$ticket = math.rand(1, 1000000000000);
$user =      "";
$password =  "";
$version =   "";
$a = false;
$b = false;
$c = false;


if ($version == $launcherv){
$a = true;

} else {
$a = false;

}
if ($user == ""){
$b = false;

} else {


$b = 'true';

}
if ($password == ""){
$c = false;

} else {
$c = true;

}




if ($a && $b && $c){
echo ($gamev.":".$ticket.":".$user.":".$sessid);
}
elseif(!$a){
echo "Old Version";
}
elseif(!$b){
echo "Bad Login";
}
elseif(!$c){
echo "Bad Login";
}

?>

5 个答案:

答案 0 :(得分:2)

问题在于......

 else (
>>>$b = 'true';>>> error?

)

你应该......

else {
  $b = 'true';
}

它会出错,因为它并不期望该行的结尾位于parens内。

答案 1 :(得分:0)

问题是错误上方的行。使用了paren而不是花括号

} else (

答案 2 :(得分:0)

您必须对控件结构使用大括号:

} else {
   $b = 'true';
}

答案 3 :(得分:0)

在前一行的else后面有(。这应该是{,匹配结束}

答案 4 :(得分:0)

在php中,块总是由花括号{分隔,而不是圆括号(。仔细看看:

} else ( // <---
   $b = 'true';
) // <--

你想:

} else {
   $b = 'true';
}

另请注意,使用字符串'true''false'作为神奇值是个不错的主意。而不是

if ($version >= $launcherv){
    $a = 'true';
} else {
    $a = 'false';
}
...
if ($a == 'true') {

你应该真的使用boolean values

if ($version >= $launcherv){
    $a = true;
} else {
    $a = false;
}
...
if ($a) { // or ! $a   for the opposite

您可以进一步简化此代码:

$a = $version >= $launcherv;
...
if ($a) { // or ! $a   for the opposite

短变量可能会混淆future readers。因此,你甚至可以写:

...
if ($version >= $launcherv) {