麻辣家族討論版版's Archiver

小誌 發表於 2011-4-19 09:29

5-3 資料輸出(5-3-1 echo()函數)

[color=DarkRed][size=4][b]5-3   資料輸出[/b][/size][/color]
在前面章節中,要輸出資料到網頁畫面中,筆者使用了echo()函數,可是筆者又使用了很多不同的格式,您可能弄得一團霧水,所以本章節將說明一下,又,除了echo()函數可輸出資料到網頁畫面中外,還有幾個函數也有資料輸出的功能,這些函數我們也要認識一下。



[color=DarkRed][size=4][b]5-3-1   echo()函數[/b][/size][/color]
echo()函數負責將字串資訊輸出至使用者端,也可與HTML標示混合使用,標準格式如下:
標準echo()函數格式[code]echo ( string arg1 [, string argn...]); [/code]例如:[code]<?
echo (“這是由PHP輸出的文字”);
?>[/code]看到了吧!標準的echo()函數用法是將字串內容用一組括號包起來,而要輸出的字串再用一對雙引號括起來,因為echo()函數是用來輸出字串資料的。

小誌 發表於 2011-4-19 09:30

好累喔!又是括號又是雙引號的,嫌麻煩ㄚ,那好,我們把最外面的括號拿掉,這樣也行:[code]<?
echo “這是由PHP輸出的文字”;
?>[/code]可是,我有特定的變數值要跟字串一起輸出耶!沒關係!我們用「.」小黑點把它連起來,「.」小黑點前後要加空格(space)喔!您不用擔心這個空格,echo()函數在輸出資料時會忽略掉這些空格:[code]<?
$x="PHP";
echo "這是由" . $x . "輸出的文字";
?>[/code]您又嫌麻煩了喔!沒關係!把「.」小黑點拿掉吧!將變數跟字串全部放在雙引號中就好:[code]<?
$x="PHP";
echo "這是由$x 輸出的文字";
?>[/code]在上例中,變數的$字元前可以不加空格,但是變數名稱後要加個空格,不然PHP會把「$x輸出的文字」當成是一個變數,而造成程式錯誤,不過,這個空格echo()函數在輸出資料時不會忽略掉,會拔它當成是字串的內容。
那我要同時印出變數名稱跟變數值時該如何做?要印出變數名稱則必須於變數的「$」之前加上反斜線「\」,原因在於「$」為一個脫逸字元,用來識別變數:[code]<?
$x="PHP";
echo " $x ";   //印出變數值”PHP”
echo " \$x ";  //印出變數名稱”$x”
?>[/code]若要將HTML標籤加入echo()函數的輸出資料時,因為HTML標籤的屬性設定值多會以雙引號括起來,而這個雙引號又是PHP的脫逸字元之一,所以,千萬別忘了在「”」之前加上反斜線「\」:
ex05_07.php[code]<html>
<head>
<title>ex05_07</title>
</head>
<body>
大家來學PHP
<hr>
今天是:
<?echo "<font color=\"#FF0000\">" . date("Y年m月j日");?>
</body>
</html>[/code]上例執行結果如上圖5-15所示,我們可以很清楚的看到PHP網頁執行後的畫面,我們利用『echo()』方法輸出了一個日期資料,而這個這個日期字串我們還加上了HTML標籤「<font color="#FF0000">」來設定它的文字顏色,問題是標籤內使用了雙引號,在「”」之前加上再加上反斜線「\」。
[attach]5520[/attach]
圖5-15  範例ex05_07.php。

小誌 發表於 2011-4-19 09:31

如果我喜歡將不會變動的網頁資料也利用echo()函數來編寫,可不可以呢?當然也可以!但是,這樣就變成編寫一支完整的PHP程式了,所以全部的敘述都必須放在 『<? 』與『?>』之中,同時,所有的HTML標籤都必須寫在雙引號 『 " 』之中:
ex05_08.php[code]<?
echo "<html>";
echo "<head>";
echo "<title>ex05_08</title>";
echo "</head>";
echo "<body>";
echo "大家來學PHP";
echo "<hr>";
echo "今天是:";
echo "<font color=\"#FF0000\">" . date("Y年m月j日");
echo "</body>";
echo "</html>";
?>[/code]上兩個範例的寫法,其結果是相同的,筆者個人比較喜歡第一種HTML標籤資料混合寫的方式,至少不用打那麼多字,不過,有前輩指出,HTML標籤資料混合寫的方式在執行效率上較差,因為系統會在HTML解析與PHP Engine持續切換,如何在開發時間與系統執行效率間取捨就看您囉!

小誌 發表於 2011-4-19 09:32

[color=RoyalBlue][size=3][b]簡化echo()函數敘述[/b][/size][/color]
在前面幾個章節,筆者都沒有使用簡化的輸出敘述,它的用法類似ASP的「<%=XXX%>」敘述寫法,例如:[code]<?echo date("Y年m月j日");?>
<?=date("Y年m月j日")?>[/code]上例的兩行程式敘述執行結果都是一樣地,後者似乎比較簡明對吧!但是,簡化的「<?=XXX?>」 敘述只能在單行敘述能用喔!在敘述區塊中是不能用的,例如下例:[code]<?
echo "大家來學PHP";
echo "<hr>";
="今天是:"
echo "<font color=\"#FF0000\">" . date("Y年m月j日");
?>[/code]如果將「="今天是:"」這行敘述獨立用一組「<? ?>」括起來就可以了:[code]<?
echo "大家來學PHP";
echo "<hr>";
?>
<?="今天是:"?>
<?
echo "<font color=\"#FF0000\">" . date("Y年m月j日");
?>[/code]哈!這樣好像有點畫蛇添足!筆者建議:在程式區塊中作輸出就使用完整的echo()函數敘述,若是在與HTML標籤資料混合的場合才使用「<?=XXX?>」的敘述寫法。

頁: [1]

麻辣家族討論版版為 麻辣學園 網站成員  由 昱得資訊工作室 © Since 1993 所提供