0

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

<?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";
}

?>
4

5 回答 5

2

问题出在这个...

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

)

你应该有...

else {
  $b = 'true';
}

它会出现错误,因为它不希望行尾位于括号内。

于 2012-02-21T19:23:36.090 回答
0

问题是错误正上方的行。使用括号代替花括号

} else (
于 2012-02-21T19:19:40.167 回答
0

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

} else {
   $b = 'true';
}
于 2012-02-21T19:19:55.717 回答
0

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

于 2012-02-21T19:20:05.540 回答
0

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

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

你要:

} else {
   $b = 'true';
}

另请注意,使用字符串'true''false'作为魔法值是一个坏主意。代替

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

你真的应该使用布尔值

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

简短的变量可能会使未来的读者感到困惑。因此,您甚至可以编写:

...
if ($version >= $launcherv) {
于 2012-02-21T19:20:57.367 回答