2013-09-03 2 views
0

Когда я запускаю это, я всегда получаю: (что всегда есть wdl-форма).php IF не работает в моем коде

copy ("templates/colors/win.txt", "tips/$today/color.txt"); 
copy ("templates/text/win.txt", "tips/$today/wdl.txt"); 

что означает последние команды, то если на мой PHP код не работает. код:

<?php 
echo ("Setting up colors..."); 
if($_GET["wdl"] == "D"); 
{ 
    copy ("templates/colors/dr.txt", "tips/$today/color.txt"); 
    copy ("templates/text/dr.txt", "tips/$today/wdl.txt"); 
} 
if($_GET["wdl"] == "L"); 
{ 
    copy ("templates/colors/lose.txt", "tips/$today/color.txt"); 
    copy ("templates/text/lose.txt", "tips/$today/wdl.txt"); 
} 
if($_GET["wdl"] == "W"); 
{ 
    copy ("templates/colors/win.txt", "tips/$today/color.txt"); 
    copy ("templates/text/win.txt", "tips/$today/wdl.txt"); 
} 
?> 

, как я могу это исправить?

solusion удалялась: Ex: ; от if($_GET["wdl"] == "W");

+0

переключателя проверки случае ведьма быстро бегать и лучше всего подходит для execucation http://stackoverflow.com/questions/18594142/php-if-is-not- work-in-my-code/18594313 # 18594313 –

+0

@ User2670708 Обязательно отметьте один из ответов как принятый, а не просто вставьте ответ в свой вопрос :-) спасибо. –

+0

Да, но я должен подождать несколько минут, чтобы принять ответ, поэтому, пожалуйста, подождите. спасибо. – user2670708

ответ

1

является лучшим способом, чтобы заменить, если с помощью переключателя заявление

<?php 
echo ("Setting up colors..."); 
switch($_GET["wdl"]) { 
    case "D" : 
     copy ("templates/colors/dr.txt", "tips/$today/color.txt"); 
     copy ("templates/text/dr.txt", "tips/$today/wdl.txt"); 
     break; 
    case "W" : 
    copy ("templates/colors/win.txt", "tips/$today/color.txt"); 
    copy ("templates/text/win.txt", "tips/$today/wdl.txt"); 
     break; 
    case "L" : 
    copy ("templates/colors/lose.txt", "tips/$today/color.txt"); 
    copy ("templates/text/lose.txt", "tips/$today/wdl.txt"); 
     break; 
} 
?> 
+0

это нечто отличное от того, что я делаю, и его работа! – user2670708

10

Снимите ; в конце if, перед {

if($_GET["wdl"] == "D"); 
{ 

должен быть

if($_GET["wdl"] == "D") 
{ 

и и так далее.

; является разделителем команд. Read more here

Это общая площадь ошибки, поэтому, чтобы избежать этого, вы могли бы сделать

if($_GET["wdl"] == "D") { 
    ... 

Таким образом, вы можете избежать случайного ; после зациклившейся конструкции

Так блок выглядит код это:

<?php 
    echo ("Setting up colors..."); 
    if($_GET["wdl"] == "D") { 
     copy ("templates/colors/dr.txt", "tips/$today/color.txt"); 
     copy ("templates/text/dr.txt", "tips/$today/wdl.txt"); 
    } 
    if($_GET["wdl"] == "L") { 
     copy ("templates/colors/lose.txt", "tips/$today/color.txt"); 
     copy ("templates/text/lose.txt", "tips/$today/wdl.txt"); 
    } 
    if($_GET["wdl"] == "W") { 
     copy ("templates/colors/win.txt", "tips/$today/color.txt"); 
     copy ("templates/text/win.txt", "tips/$today/wdl.txt"); 
    } 
?> 
4
if($_GET["wdl"] == "W"); 

из-за полу толстая кишка (;) после IF заявление

Удалить точку с запятой в конце концов IF заявление. Похоже

if($_GET["wdl"] == "D") { 
    copy ("templates/colors/dr.txt", "tips/$today/color.txt"); 
    copy ("templates/text/dr.txt", "tips/$today/wdl.txt"); 
} 
if($_GET["wdl"] == "L") { 
    copy ("templates/colors/lose.txt", "tips/$today/color.txt"); 
    copy ("templates/text/lose.txt", "tips/$today/wdl.txt"); 
} 
if($_GET["wdl"] == "W") { 
    copy ("templates/colors/win.txt", "tips/$today/color.txt"); 
    copy ("templates/text/win.txt", "tips/$today/wdl.txt"); 
} 
2

Попробуйте это:

if($_GET["wdl"] == "D"){ 
    copy ("templates/colors/dr.txt", "tips/$today/color.txt"); 
    copy ("templates/text/dr.txt", "tips/$today/wdl.txt"); 
}else if($_GET["wdl"] == "L"){ 
    copy ("templates/colors/lose.txt", "tips/$today/color.txt"); 
    copy ("templates/text/lose.txt", "tips/$today/wdl.txt"); 
}else if($_GET["wdl"] == "W"){ 
    copy ("templates/colors/win.txt", "tips/$today/color.txt"); 
    copy ("templates/text/win.txt", "tips/$today/wdl.txt"); 
} 

Вы должны удалить ; с конца if заявления, и вы можете также сделать его else if, чтобы предотвратить его от тестирования оставшихся заявлений раз один матч.

Смежные вопросы