通過前面的學習了解了php的基本語法,今天向大家簡單介紹php的幾種輸出方式:
1.? ?echo 常用的輸出語句,例如:echo 'helloworld!';
2.? ?print() 輸出語句,有返回值。例如:print('helloworld!'); 輸出成功返回1,失敗返回0。
3.? ?printf(); 格式化輸出字符串。例如:printf("%d,%f",12,12.3);
4.? ?print_r(); 輸出數組、對象等復合數據類型。例如:print_r($array);
5.? var_dump(); 可以判斷一個變量的類型與長度,并輸出變量的數值。例如:var_dump('helloworld!');
6.??sprintf?函數也用做字符串格式化。例如: $formatted = sprintf ( "%01.2f ", '123.1' ) ;??
為方便我們的記憶,先對這幾種不同的輸出方式做個對比。
- echo ? - 可以輸出一個或多個字符串
- print ? - 只能輸出簡單類型變量的值,如int,string
- print_r?- 可以輸出復雜類型變量的值,如數組,對象
- printf -函數用于格式化輸出字符串,主要用于字符串中以%開頭的格式字符串替換。
- sprintf -函數也用做字符串格式化。該函數與 printf 函數基本相同, 但它可以將轉換后的結果保存到一個字符串變量中,而不是直接輸出。(因為跟printf類似,下面就不做詳細演示了)
- var_dump -打印變量的相關信息,包括表達式的類型與值,通過縮進顯示其結構。
提示:echo輸出的速度比print快,echo是PHP語句,沒有返回值,print和print_r是PHP函數,函數有返回值。
print返回值為1(int類型),print_r返回值為true(bool類型)。
echo
echo 是一個語言結構,使用的時候可以不用加括號,也可以加上括號: echo 或 echo()。
顯示字符串
下面的實例演示了如何使用 echo 命令輸出字符串(字符串可以包含 HTML 標簽):
<?php
echo "<h2>PHP is fun!</h2>";
echo "Hello world!<br>";
echo "I'm about to learn PHP!<br>";
echo "This", " string", " was", " made", " with multiple parameters.";
?>
上面echo輸出結果:
PHP is fun!Hello world!
I'm about to learn PHP!
This string was made with multiple parameters.
顯示變量
下面的實例演示了如何使用 echo 命令輸出變量和字符串:
<?php
$txt1="Learn PHP";
$txt2="w3cschool.cn";
$cars=array("Volvo","BMW","Toyota");echo $txt1;
echo "<br>";
echo "Study PHP at $txt2"; //這里外面用的是雙引號,在php里,雙引號是可以解析變量的
echo "My car is a {$cars[0]}";
?>
結果:
Learn PHP
Study PHP at w3cschool.cn
My car is a Volvo
?print 語句
print 同樣是一個語言結構,可以使用括號,也可以不使用括號: print 或 print()。
顯示字符串
下面的實例演示了如何使用 print 命令輸出字符串(字符串可以包含 HTML 標簽):
<?php
print "<h2>PHP is fun!</h2>";
print "Hello world!<br>";
print "I'm about to learn PHP!";
?>
上面運行的結果:
PHP is fun!Hello world!
I'm about to learn PHP!
顯示變量
下面的實例演示了如何使用 print 命令輸出變量和字符串:
<?php
$txt1="Learn PHP";
$txt2="w3cschool.cn";
$cars=array("Volvo","BMW","Toyota");print $txt1;
print "<br>";
print "Study PHP at $txt2";
print "My car is a {$cars[0]}";
?>
運行結果:
Learn PHP
Study PHP at w3cschool.cn
My car is a Volvo
print_r 語句
print_r?顯示關于一個變量的易于理解的信息,如果給出的是?string、integer?或?float,將打印變量值本身。
如果給出的是?array,將會按照一定格式顯示鍵和元素。object與數組類似。
使用時必須加上括號:print_r()。
小提示:print_r()會將把數組的指針移到最后邊。使用?reset()?可讓指針回到開始處。
顯示字符串
下面的實例演示了如何使用 print_r 命令輸出字符串(字符串可以包含 HTML 標簽):
<?php
print_r("Hello World!");
print_r("Goodbye World!");
?>
運行結果:
Hello World! Goodbye World
顯示變量
下面的實例演示了如何使用 print_r 命令輸出變量和字符串:
<?php
$txt1="Hello World!";
$cars=array("Volvo","BMW","Toyota");print_r($txt1);
print_r($cars);
?>
運行結果:
Hello World!Array ( [0] => Volvo [1] => BMW [2] => Toyota ) <!-- 后面array是打印的$cars數組 -->
printf
printf() 函數輸出格式化的字符串。
arg1、arg2、arg++?參數將被插入到主字符串中的百分號(%)符號處。該函數是逐步執行的。在第一個 % 符號處,插入?arg1,在第二個 % 符號處,插入?arg2,依此類推。
注釋:如果 % 符號多于?arg?參數,則您必須使用占位符。占位符被插入到 % 符號之后,由數字和 "$" 組成。
語法:
參數 | 描述 |
---|---|
format | 必需。規定字符串以及如何格式化其中的變量。 可能的格式值:
附加的格式值。必需放置在 % 和字母之間(例如 %.2f):
注釋:如果使用多個上述的格式值,它們必須按照上面的順序進行使用,不能打亂。 |
arg1 | 必需。規定插到?format?字符串中第一個 % 符號處的參數。 |
arg2 | 必需。規定插到?format?字符串中第二個 % 符號處的參數。 |
arg++ | 可選。規定插到?format?字符串中第三、四等等 % 符號處的參數。 |
<?php
$number = 9;
$str = "北京";
printf("在%s有 %u 百萬輛自行車。",$str,$number);
?>
運行結果:
在北京有 9 百萬輛自行車。
使用格式值 %f:
<?php
$number = 123;
printf("%f",$number);
?>
結果:
123.000000 這里默認省略到小數點后六位
使用占位符:
<?php
$number = 123;
printf("有兩位小數:%1\$.2f<br>沒有小數:%1\$u",$number);
?>
結果:
有兩位小數:123.00
沒有小數:123
所有可能的格式值的演示:
<?php
$num1 = 123456789;
$num2 = -123456789;
$char = 50; // ASCII 字符 50 是 2// 注釋:格式值 "%%" 返回百分號
printf("%%b = %b <br>",$num1); // 二進制數
printf("%%c = %c <br>",$char); // ASCII 字符
printf("%%d = %d <br>",$num1); // 帶符號的十進制數
printf("%%d = %d <br>",$num2); // 帶符號的十進制數
printf("%%e = %e <br>",$num1); // 科學計數法(小寫)
printf("%%E = %E <br>",$num1); // 科學計數法(大寫)
printf("%%u = %u <br>",$num1); // 不帶符號的十進制數(正)
printf("%%u = %u <br>",$num2); // 不帶符號的十進制數(負)
printf("%%f = %f <br>",$num1); // 浮點數(視本地設置)
printf("%%F = %F <br>",$num1); // 浮點數(不視本地設置)
printf("%%g = %g <br>",$num1); // 短于 %e 和 %f
printf("%%G = %G <br>",$num1); // 短于 %E 和 %f
printf("%%o = %o <br>",$num1); // 八進制數
printf("%%s = %s <br>",$num1); // 字符串
printf("%%x = %x <br>",$num1); // 十六進制數(小寫)
printf("%%X = %X <br>",$num1); // 十六進制數(大寫)
printf("%%+d = %+d <br>",$num1); // 符號說明符(正)
printf("%%+d = %+d <br>",$num2); // 符號說明符(負)
?>
運行結果:
%b = 111010110111100110100010101
%c = 2
%d = 123456789
%d = -123456789
%e = 1.234568e+8
%E = 1.234568E+8
%u = 123456789
%u = 4171510507
%f = 123456789.000000
%F = 123456789.000000
%g = 1.23457e+8
%G = 1.23457E+8
%o = 726746425
%s = 123456789
%x = 75bcd15
%X = 75BCD15
%+d = +123456789
%+d = -123456789
字符串說明符的演示:
<?php
$str1 = "Hello";
$str2 = "Hello world!";printf("[%s]<br>",$str1);
printf("[%8s]<br>",$str1);
printf("[%-8s]<br>",$str1);
printf("[%08s]<br>",$str1);
printf("[%'*8s]<br>",$str1);
printf("[%8.8s]<br>",$str2);
?>
運行結果:
[Hello]
[ Hello]
[Hello ]
[000Hello]
[***Hello]
[Hello wo]
var_dump
? —?打印變量的相關信息,此函數顯示關于一個或多個表達式的結構信息,包括表達式的類型與值。數組將遞歸展開值,通過縮進顯示其結構。
<?php
$a = array(1, 2, array("a", "b", "c"));
var_dump($a);
?>
運行結果:
array(3) {[0]=>int(1) 前面是類型[1]=>int(2)[2]=>array(3) {[0]=>string(1) "a"[1]=>string(1) "b"[2]=>string(1) "c"}
}
再來一個例子,
<?php$b = 3.1;
$c = true;
var_dump($b, $c);?>
運行結果:
float(3.1)
bool(true)
?
?
?