批改状态:合格
老师批语:一定要认真完成,不要敷衍!
// 代码function sum(int $a, int $b) {// 返回结果给调用者return "{$a} + {$b} = " . ($a + $b);}// 执行,将执行结果打印输出echo sum(10, 20);
结果打印输出10 + 20 = 30
$email = 'leon@dachishui.com';// echo 回显,效率最高,没有返回值echo $email, '<br>';echo '<span style="color:red">' . $email . '</span>';echo '<hr>';// print与echo 区别// 1. echo 可以打印多个变量,且没有返回值// 2. print 仅能打印单个变量, 返回1echo print $email;echo '<hr>';echo gettype($email), '<br>';// var_dump()想获取到变量的完整的信息var_dump($email);var_dump(123);echo '<hr>';// var_export(): 返回一个变量的字符串表示(源代码)var_export($email);
结果
leon@dachishui.comleon@dachishui.comleon@dachishui.com1stringstring(18) "leon@dachishui.com" int(123)'leon@dachishui.com'
// 变量的命名// 变量是临时存储数据的容器// 变量是实现数据复用的手段$username = 'admin';$userName = 'leon';// 变量区分大小写echo $username,'<br>', $userName, '<hr>';// 函数是不区分大小写echo strtoupper($userName);echo STRTOUPPER($userName);// 变量名必须以"$"开始// hello = 'php';// 变量标识符不允许用数字开始// $123aaa = 'china';// 变量允许使用下划线开始$_email = 'leon@dachishui.com';// 变量名不允许使用特殊字符,@// $user@id = 'abc';// 变量标识符: $开始,仅允许字母,下划线和数字,且不允许使用数字开始$我的邮箱 = 'leon@dachishui.com';// 中文可以用作变量名,但不推荐echo $我的邮箱;// 无意义, 不要用,变量名要望文生义$aaa = 'dachishui.com';$_ = 123;
结果
adminleonLEONLEONleon@dachishui.com
// 变量的动态: 是指变量的类型可以随值而变化$var = 100;var_dump($var);echo '<hr>';$var = 'dachishui.com';var_dump($var);
结果
int(100)string(13) "dachishui.com"
// 1. 值传递,也是默认的方式$price1 = 99;$price2 = $price1;// 更新price2$price2 = 199;// 查看price1echo 'price1 = ' . $price1 . '<hr>';// 2. 引用传递$price1 = 99;// 在等号的右边/右值前面加上&(取地址符)// 当前$price2中保存的并不是99, 而是$price1变量在内存中的地址, [0xabcd1234] = 99$price2 = &$price1;// 更新price2$price2 = 199;// 查看price1, 会发现print1与price2同步更新了echo 'price1 = ' . $price1 . '<hr>';
结果
price1 = 99price1 = 199
$var = 'email';// $email = 'leon@dachishui.com';// 变量名可以动态的创建$$var = 'leon@dachishui.com';echo $email;
结果
leon@dachishui.com
// 打开所有的报错error_reporting(E_ALL);// echo $username;// 变量检测$username = '浪子';$username = null;// isset():如果该变量存在且值不为null才是trueif (isset($username)) echo $username. '<br>';else echo '没有定义该变量'.'<hr>';// unset():删除变量, 没有返回值// unset($username);// echo $username;$var = '';if (empty($var)) var_dump($var). '<br>';
结果
没有定义该变量string(0) ""
// 1. 基本类型// 字符串$name = '平板';// 数值$price = 5980;// 布尔$is5G = false;// 2. 复合类型, 对象,数组// 对象$obj = new stdClass;// 对象是属性和方法的无序集合$obj->name = 'leon';$obj->age = 40;echo $obj->name, '<hr>';// 数组$arr = ['笔记本', 6500, 'lenovo'];// print_r()以人性化的方式打印变量,true表示不直接打印,而返回// 返回就是一定要有一个接收者$str = print_r($arr, true);echo '<pre>'.$str.'</pre>';// 基本类型: 标量, 单值// 复合类型: 多值,// 3. 特殊类型// NULL$num = null;var_dump($num);// $f就是文件资源类型$f = fopen('demo2.php', 'r');var_dump($f);echo gettype($f);
结果
leonArray([0] => 笔记本[1] => 6500[2] => lenovo)NULL resource(3) of type (stream) resource
// 自动转换: 是由php系统偷偷进行的,不需要用户主动参与$a = null;$b = true;$c = false;$d = '5g';$e = 'php';$f = 15;// null在算术运算中自动转为0// echo $a + 10, '<br>';// true在算术运算中转为1// echo $b + 10, '<br>';// echo $d + 10, '<br>';// echo $e + 10, '<br>';// . : 字符串连接操作// echo $e . $f, '<br>';echo '<hr>';// 强制转换// 如果不想看到警告,通过强制转换解决// echo (int)$e + 10, '<br>';echo intval($e) + 20, '<br>';echo strval($f) . ' hello';echo gettype($f);echo '<hr>';// 永久转换settype($f, 'string');echo gettype($f);
结果
2015 hellointegerstring
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号