2015-04-28 100 views
-6

我有下面的代码,当我加载它,我总是得到这个错误..语法错误,意外 ':'

function newPlayer($wallet) { 
    generate_: { 
    $hash=generateHash(32); 
    } 
    if (mysql_num_rows(mysql_query("SELECT `id` FROM `players` WHERE `hash`='$hash' LIMIT 1"))!=0) goto generate_; 
     $alias='Player_'; 
     $alias_i=mysql_fetch_array(mysql_query("SELECT `autoalias_increment` AS `data` FROM `system` LIMIT 1")); 
     $alias_i=$alias_i['data']; 
     mysql_query("UPDATE `system` SET `autoalias_increment`=`autoalias_increment`+1 LIMIT 1"); 
     mysql_query("INSERT INTO `players` (`hash`,`alias`,`time_last_active`,`server_seed`) VALUES ('$hash','".$alias.$alias_i."',NOW(),'".generateServerSeed()."')"); 
     header('Location: ./?unique='.$hash.'# Do Not Share This URL!'); 
     exit(); 
} 

错误:

Parse error: syntax error, unexpected ':' in /home/a1180044/public_html/inc/functions.php on line 49 

49号线是generate_:

+4

PHP JavaScript不 – PeeHaa

+0

什么'generate_的作用:'? – Cristik

+1

你是否在任何一个古老的PHP版本? – PeeHaa

回答

1

尽量不要使用goto。

通过使用goto,您将丢失在您自己的代码中,因为您必须搜索每次goto指向的地方。

在这里你可以做你想做的写作内容:

if (mysql_num_rows(mysql_query("SELECT `id` FROM `players` WHERE `hash`='$hash' LIMIT 1"))!=0) { 
    $hash=generateHash(32); 
} 
+0

哦,上帝,'goto'声明是在OP中可缩进代码块的滚动之后。 @OP是啊不。 – PeeHaa

+0

谢谢你。我取代了所有的gotos,现在没事了。谢谢 :) – Glutius