2012-05-02 22 views
2

我有一個條件包含但遇到問題。if else幷包括

例如:該作品

<?php if($t==3) 
echo 'Foo'; 
    else 
echo 'Foo something else'; 
    ?> 

這個:不工作

<?php if($t==3) 
echo 'Foo'; 
include ('/home/path/public_html/includes/foo_one.php'); 
echo 'Example: one'; 
    else 
echo 'Foo something else'; 
include ('/home/path/public_html/includes/foo_two.php'); 
echo 'Example: two'; 
?> 

你能提供一些線索,以什麼我做錯了嗎?

或者我應該包括內部回聲的包括,只是做回聲包括...等等其他回聲anotherinclude ...

+0

我很驚訝,第一個示例 –

+1

@保羅:討厭的壓痕,但沒有什麼特別的。幾乎所有帶花括號的語言都允許您在控制語句中僅包含單個語句時省略它們。 – ThiefMaster

+1

@paul爲什麼?你驚喜嗎? –

回答

12

您需要使用{}if/else內的塊多行。

<?php 
if($t==3){ 
    echo 'Foo'; 
    include ('/home/path/public_html/includes/foo_one.php'); 
    echo 'Example: one'; 
} 
else{ 
    echo 'Foo something else'; 
    include ('/home/path/public_html/includes/foo_two.php'); 
    echo 'Example: two'; 
} 
?> 

你無論如何都應該使用{},它可以更容易閱讀,並防止錯誤這樣。

+0

謝謝我是這樣的旋鈕乾杯! – 422

+2

是的,我們都做這樣的愚蠢的錯誤:-P –

+1

@ 422也是一個小的,但簡單的建議寫if語句像'constant == $ variable'。當if語句接受非布爾值時尤其如此。 (C/C++,PHP,Javascript)。所以如果你不小心寫了一個'=',你將不會得到一個賦值(可能會傳遞IF語句)。所以,如果你的$ t值必須是一個數值,那麼寫下你的if if(3 == $ t)'或'if(3 === $ t)'。 –

1
<?php 
if($t==3) 
{ 
    echo 'Foo'; 
    include ('/home/path/public_html/includes/foo_one.php'); 
    echo 'Example: one'; 
} 
else 
{ 
    echo 'Foo something else'; 
    include ('/home/path/public_html/includes/foo_two.php'); 
    echo 'Example: two'; 
} 
?> 
+0

乾杯大安完美 – 422

2

你缺少{}被用來將幾行內的if else:

<?php 

if ($t==3) { 

    // run all of this is $t equals 3 
    echo 'Foo'; 
    include ('/home/path/public_html/includes/foo_one.php'); 
    echo 'Example: one'; 

} else { 

    // otherwise, run this 
    echo 'Foo something else'; 
    include ('/home/path/public_html/includes/foo_two.php'); 
    echo 'Example: two'; 

} 

// runs every time 
echo "test me, I always run"; 

?> 
+0

甜美的感謝:)它只是一些明顯的事情,謝謝你的最後一點..;) – 422

0

接受的答案是100%正確的,但...

這不是強制性的大量使用大括號{}。此代碼可能看起來像

if ($t==3): 
    // code 
else: 
    // code 
endif; 

所以:endif需要