2018年12月26日 星期三

DW_PHP_AJAX_CH4 PHP對資料的接收與輸出_(3)資料輸出

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

 [echo()函數]

 echo()函數負責將字串資訊輸出至使用者端,也可與HTML標示混合使用, 標準格式如下:
echo ( string arg1 [, string argn...]);
例如:
<?php echo ("這是由PHP輸出的文字"); ?>
標準的echo()函數用法是將字串內容用一組括號包起來, 而要輸出的字串再用一對雙引號括起來, 因為echo()函數是用來輸出字串資料的。又是括號又是雙引號的很麻煩, 因此, 把最外面的括號拿掉這樣也行:
<?php echo '這是由PHP輸出的文字'; ?>
上例, 筆者將包括字串內容的()去掉, echo()函數仍可正確執行, 同時, 筆者者亦將用以包括字串的雙引號 ” 置換為單引號 ‘ , 這樣也可行, 因為在PHP中, 字串可用雙引號或單引號包括, 但要注意到雙引號或單引號都必須成雙出現, 不可單、雙引號混合使用。 
若有特定的變數值要跟字串一起輸出, 可用「.」小黑點把它連起來, 「.」小黑點前後要加空格(space)!這個空格在echo()函數輸出資料時會被忽略掉:
<?php
$x="PHP";
echo "這是由" . $x . "輸出的文字"; ?>

您又嫌麻煩了喔!沒關係!把「.」小黑點拿掉吧!將變數跟字串全部放在雙引號中就好:
<?php
$x="PHP";
echo "這是由$x 輸出的文字"; ?>
在上例中, 變數的$字元前可以不加空格, 但是變數名稱後要加個空格, 不然PHP會把「$x輸出的文字」當成是一個變數, 而造成程式錯誤, 這個空格echo()函數在輸出資料時不會忽略掉, 會把它當成是字串的內容。 
若要同時印出變數名稱跟變數值時, 則必須於變數的「$」之前加上反斜線「\」,原因在於「$」為一個脫逸字元,用來識別變數:
<?php
$x="PHP";
echo "$x:";  //印出變數值
echo "\$x:";  //印出變數名稱
?>

!!!TIP:

若要將HTML標籤加入echo()函數的輸出資料時, 因為HTML標籤的屬性設定值多會以雙引號括起來, 而這個雙引號又是PHP的脫逸字元之一, 所以,千萬別忘了在「”」之前加上反斜線「\」。 
在前面幾個章節, 筆者都沒有使用簡化的輸出敘述, 它的用法類似ASP的「<%=XXX%>」敘述寫法, 例如:
<?php echo date("Y年m月j日"); ?>
<? echo date("Y年m月j日"); ?>
<?= date("Y年m月j日");  ?>
上例的3行程式敘述執行結果都是一樣地, 但是,簡化的「」 敘述只能在單行敘述能用!在敘述區塊中是不能用的, 例如下例:
<?php
echo date("Y年");
= date("m月");
echo date("日");
?>
如果將「= date("m月");」這行敘述獨立用一組「」括起來就可以了:
<?php echo date("Y年"); ?>
<?= date("m月"); ?>
<?php echo date("日"); ?>
這樣好像有點畫蛇添足!筆者建議:在程式區塊中作輸出就使用完整的echo()函數敘述, 若是在與HTML標籤資料混合的場合才使用的敘述寫法。 

[print()函數]

 print()函數也是用來輸出資料的,用法也如同echo()函數一般:
<?
print "大家來學PHP";
print "<hr>";
?>
<?= "今天是:";?>
<?
print "<font color=\"#FF0000\">" .  date("Y年m月j日");
?>
print()函數雖然可以將資料輸出到網頁畫面中, 但echo()函數可以利用「,」逗號來合併列印多項資料, print()函數卻做不到:
<?php
$x="我愛";
$y="PHP";
echo $x . $y; //印出'我愛php'
echo $x,"PHP"; //印出'我愛php'
print $x . $y; //印出'我愛php'
print $x,$y;  //錯誤,print()不認識','逗號
?>
以上例來看, print()函數似乎不如echo()函數有用, 事實不然, print()函數有它特別的作用, echo()函數只管將資料做輸出的動作, 資料有沒有正確的輸出, echo()函數並不會告訴您, 而print()函數在做資料輸出的動作後, 會有回傳值, 通知我們資料是否已正確的輸出:
<?php
$x="我愛";
$y="PHP";
$test=print $x . $y; //印出'我愛php'
print $test; //資料輸出成功回傳1
?>

[printf()函數] 

printf()函數可根據我們的格式設定來輸出格式化的字串, printf()函數跟print()函數不同, 資料輸出後不會有回傳值, 其格式如下:
void printf ( string format [, mixed args])
上式中:「format」為格式設定, 例如:
<?php
$age="20 歲";
printf("%d" ,"$age"); //輸出20
?>
上例中, 格式設定為「%d」乃是將字串「"20 歲"」格式化為十進制資料而輸出「20」。 又如:輸出小數點後3位小數的浮點指數
<?php
$age="20 歲";
printf("%.3e" ,"$age"); //輸出2.00e+1
?>
格式化的字串中也可以包含要顯示的文字, 例如:
<?php
$age="20 歲";
printf("我%.3e歲" ,"$age"); //輸出「我2.00e+1歲」
?>

沒有留言:

張貼留言