2015-04-28 107 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