在PHP中,如果我们想在页面上显示一些东西,就要用到输出语句。
PHP 输出内容主要有 6种方式,分别为:echo
、print
、print_r
、printf
、sprintf
、var_dump
等语句或函数:
A、echo语句
echo
实际上不是一个函数,是php语句,因此您无需对其使用括号。
<?php
# 正确的使用echo语句
echo 1; // 正确的使用方式
echo '你好'; // 正确的使用方式
echo "hello world"; // 正确的使用方式
# 错误的使用echo语句
echo('1'); // 错误的使用方式,echo不是一个函数
$test = echo 1; // 错误的使用方式,echo不能用于赋值
对于数组的读取,我们比较特殊,按照数组的维度,我们使用[键名]
的方式,读取对应的键值内容。
下面我们来试验下:
<?php
# 先定义一个数组变量,变量是什么会在下面章节讲到
$data = [
0 => '小黄牛',
'name' => '好帅',
];
# 根据键名,输出对应的键值内容
echo $data[0];
echo $data['name'];
B、print语句
1、print
实际上也不是一个函数,是php语句,因此您无需对其使用括号。
2、同时,echo
速度会比print
快一些。
3、并且,print
有个特点,他是支持函数方式使用,并且print
的返回值是固定1
,所以支持赋值使用。
<?php
$test = print("hello world"); // 这样的使用方式是正确的,变量$test的值会是1
print "hello world"; // 这样使用,效果跟echo一样
C、print_r()函数
1、print_r()
是一个函数,而不是php语句,因此使用的时候必须要对其使用括号。
2、如果print_r()
的参数的数据类型是string
, int
又或是float
, 将会直接输出其内容。
3、如果print_r()
的参数的数据类型是一个数组(array),则会输出一个格式化后的数组,便于阅读。
4、注意:print_r()
函数最多可传递两个参数,第一个是变量或内容,第二个可设为true
,如果设为true
,则会返回字符串,否则返回bool类型下的true
,而不是1
。
<?php
$str = "hello world"; // 先定义一段字符串
$test = print_r($str); // $test变量获得赋值内容true,同时print_r会打印出$str的字符串内容到页面中
echo $test; // 这时候$test的值是true
老师提醒:运行过上面代码的同学应该会发现,最后输出$test的页面结果居然是1,实际上在PHP中,类型是无法直接输出到页面中的,true将自动转换为1,而false会自动转换成0!
D、printf()函数
1、printf()
是一个函数,而不是php语句,因此使用的时候必须要对其使用括号。
2、printf()
是一个比较有意思的函数,他可以传递无限个参数,第一个是字符串参数,之后的参数则可以是任意变量、字符串或数字。
3、在printf()
函数,的第一个参数中,有一个小小的概念,叫占位概念。
4、例如,我们想打印一份成绩单,内容是:广州中学3班,小明同学,语文80分
。如果我不想每打印一条,就改一次这段内容,那该怎么做呢?
5、这时候占位的概念就可以很轻易解决我们这个难题,我们使用%s
符号,暂时代替我们想要变动的地方,例如:广州中学%s班,%s同学,%s %s分
。
6、再使用printf()
函数替换掉我们需要更换的内容即可。
7、注意:printf()
函数会直接输出更换后的内容;同时,printf()
函数的返回值,是更换后的字符串长度(字节)。
<?php
# 使用占位符,暂时代替需要替换的内容
$str1 = '广州中学%s班,%s同学,%s %s分。';
# 创建需要替换的内容
$str2 = 3;
$str3 = '小明';
$str4 = '语文';
$str5 = 80;
# 使用printf()函数,依次从左到右开始替换
$test = printf($str1, $str2,$str3,$str4,$str5); // 这里会直接输出替换后的内容
echo $test; // 将会输出更换后的字符串长度,为49
老师提醒1:在实际开发中,占位概念是经常会用到的一种简单的思维运用,例如:
1、最常用的生成电子协议
2、微信开发的xml内容替换
3、发短信时的 短信内容替换等老师提醒2:在上述代码中,老师使用的占位符是%s,实际上printf()函数还有很多其他类型的占位符,不过都不常用,所以只需要了解存在即可。
E、sprintf()函数
1、sprintf()
是一个函数,而不是php语句,因此使用的时候必须要对其使用括号。
2、sprintf()
函数的作用和printf()
函数的作用一样,但他不会直接输出替换后的内容,而是保存在返回值中。
<?php
# 使用占位符,暂时代替需要替换的内容
$str1 = '广州中学%s班,%s同学,%s %s分。';
# 创建需要替换的内容
$str2 = 3;
$str3 = '小明';
$str4 = '语文';
$str5 = 80;
# 使用printf()函数,依次从左到右开始替换
$test = sprintf($str1, $str2,$str3,$str4,$str5); // 这里不会输出内容
echo $test; // 输出替换后的内容
F、var_dump()函数
1、var_dump()
是一个函数,而不是php语句,因此使用的时候必须要对其使用括号。
2、var_dump()
函数的作用和print_r()
函数的作用一样,唯一不同的是:var_dump()
函数可以输出内容的数据类型 与 长度。
<?php
# 创建测试数组
$test = [
1 => '老师最棒',
2 => 'hello world',
];
# 输出数组结构
var_dump($test);
# 结果如下:
/*
array(2) {
[1]=>
string(12) "老师最棒"
[2]=>
string(11) "hello world"
}
*/
老师提醒:在实际开发中,80%的场景都只是用到了:
echo
、var_dump()
、sprintf()
,这1个语句和2个函数。