今日因為突發的私事較多,時間較少,因此讓我藉此理由偷懶一下,分享個簡單的主題吧
這次要與各位分享的是,PHP的語法縮寫(簡寫)
啥?今天怎說這個沒深度的,都說今天讓我偷懶一下嗎@@
好啦,廢話不多說,讓我們進入正題
在要使用PHP的縮寫前,首先要先打開php.ini
找到short_open_tag = Off把它改成short_open_tag = On
再重新啟動Apache Web Server,縮寫功能即會開啟
接著來看看PHP常看到的縮寫有哪些
在宣告為PHP區域時會打上<?php ?>,而它的縮寫是<? ?>
在Apache Web Server 剛架設完縮寫功能未開啟,很多PHP新手會很疑惑地抓不到為何不能執行PHP程式碼,而是直接在頁面上顯示出來程式碼
通常是因為在宣告PHP區域是使用縮寫的關係
echo $str; 的縮寫為 <?=$str; ?>即可,等於是跟這個PHP區域說,我這個PHP區域就是這個變數而已,輸出結果是一樣的
if...else 通常這個是最虐心的(虐心or虐新傻傻分不清楚),該怎說呢
通常我們用的if為以下這樣:
if($value){
echo "Yes";
}else{
echo "No";
}
但經過縮寫後變為以下這樣:
echo ($value) ? ( "Yes" ) : ( "No" );
想當初,筆者就是這樣被自己的前輩虐待過...(那我可以傳承下去這樣對待之後的新人嘛@@)
而現在換自己虐待自己了,假如是巢狀if...else的縮寫呢
試了一下,以此類推照著寫出來是可以輸出結果的,有興趣的讀者可以複製到自己的環境底下執行,程式碼如下:
「php_short.php」
<?php
$value=9;
$value2=3;
?>
echo未縮寫輸出結果: <?php echo $value;?><br />
echo縮寫後輸出結果: <?=$value;?><br />
<hr />
<?php
echo "if...else未縮寫結果:";
if($value > 5) {
echo("Value值大於等於5(>=5)");
}else {
echo("Value值小於等於5(<=5)");
}
echo "<hr />";
echo "if...else縮寫結果:";
echo ($value >= 5) ? ( "Value值大於等於5(>=5)" ) : ("Value值小於等於5(<=5)");
echo "<hr />";
echo "if...else巢狀縮寫結果:";
echo ($value >= 5) ? (($value2 <= 5) ? ( "Value值大於等於5(>=5)且Value2小於等於5(<=5)" ) : ( "Value值大於等於5(>=5)且Value2大於等於5(>=5)" ) ) : ( ($value2 >= 5) ? ( "Value值小於等於5(<=5)且Value2大於等於5(>=5)" ) : ( "Value值小於等於5(<=5)且Value2小於等於5(<=5)" ) );
?>
執行結果如下圖: