Correcting teacher:天蓬老师
Correction status:qualified
Teacher's comments:坚持, 写得不错
序号 | 指令 | 描述 |
---|---|---|
1 | echo |
语言结构, 可查看多个变量 |
2 | print |
语言结构,功能与echo 类似,区别是有返回值 |
3 | print_r() |
函数,以更容易理解的格式打印变量信息,常用于数组 |
4 | var_dump() |
函数,可查看一个变量更多信息,如类型 |
5 | var_export() |
函数,输出或返回一个变量的字符串表示(源代码) |
实际工作中,
echo
和var_dump()
基本可以满足大多数需求;
<?php
# 直接打印结果
echo '我爱php';
# 不直接打印,返回字符串(后面的true参数)
echo print_r(['张三', '李四'], true);
?>
<?php
// php的变量
# 变量命名
## php中, 变量名区分大小写(注意, 函数不区分大小写)
$username = 'admin';
$userName = 'peter';
echo $username, '<br>', $userName, '<br>';
## php中, 正确的变量必须使用$作为起始符号
// hello = 'php'; // 这是错误的
## php中, 变量名不能以数字开始
// 123abc = 'php';
## php中, 变量名中不能有特殊符号
//$user@id = 100;
## php有效标识符: 必须由以下3种字符组成: 大小写英文字母, 下划线, 数字. 且不能以数字开始.
$var = 100;
var_dump($var);
$var = "hello";
var_dump($var);
变量值传递示例:
<?php
# 变量数据的传递方式
## 1.值传递
$price1 = 99;
$price2 = $price1;
echo 'price1 = ', $price1, '; price2 = ', $price2, '<br>';
/* 修改$price1的值, 但$price2的值不变 */
$price1 = 100;
echo 'price1 = ', $price1, '; price2 = ', $price2;
echo '<hr>';
## 2.引用传递
$price1 = 99;
// 引用方式赋值. 其中: &叫取地址符.
$price2 = &$price1;
echo 'price1 = ', $price1, '; price2 = ', $price2, '<br>';
/* 修改$price1的值, 但$price2的值会跟着变 */
$price1 = 100;
echo 'price1 = ', $price1, '; price2 = ', $price2;
可变变量示例:
# 动态输出学生姓名
$stu1 = '张三';
$stu2 = '李四';
$stu = 'stu1';
// 会输出“张三”
echo $$stu . '<br>';
$stu = 'stu2';
// 会输出“李四”;
echo $$ stu . '<br>';
# N层嵌套
$a1 = 'hello, php!';
$a2 = 'a1';
$a3 = 'a2';
$a4 = 'a3';
echo $$$$a4 . '<br>';
<?php
function check($param) {
if(isset($param)) {
echo '已定义,值为:' . $param;
} else {
echo '未定义';
}
echo '<br>';
}
# 检测变量
$stu1 = '张三';
check($stu1);
check($stu2);
# 删除/销毁变量
$stu = '张三';
check($stu);
unset($stu);
check($stu);
# 判断NULL值
$param;
if(is_null($param)) {
echo '$param的值为NULL<br>';
}
# 判断空值
function check1($param) {
if(empty($param)) {
echo '该变量的值是空值<br>';
}
}
$param1;
check1($param1);
$param1 = '';
check1($param1);
$param1 = [];
check1($param1);
基本类型示例:
// 字符串(string)
$name = 'grantkai';
// 数值类型(int, float)
$price = 999;
$pi = 3.1415926
// 布尔类型(boolean)
$is5G = true;
复合类型示例:
// 对象
$obj = new stdClass;
$obj->email = 'admin@php.cn';
echo $obj->email, '<br>';
// 数组
$arr = ['computer', 8000, '华为'];
echo '<pre>';
var_dump($arr);
echo '</pre>';
// null值
$num = null;
var_dump($num);
echo '<br>';
// 资源类型, 如: 文件等
$f = fopen('demo7.php', 'r');
var_dump($f);
echo '<br>';
// 判断文件类型
if (gettype($f) === 'resource') {
echo 'demo7.php是一个文件';
}
echo "<br>";
## tips: 获取变量的数据类型
echo gettype($f);
tips: 使用gettype()函数获取变量的类型名称