批改状态:合格
老师批语:,购物车不错,稍微注意点错别字
数组的遍历循环
<!DOCTYPE html><html lang="zh-CN"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title><?php echo '数组的遍历循环'; ?></title></head><body><?php$navs = [['id' => 1, 'name' => '前端课程'],['id' => 2, 'name' => '后端课程'],['id' => 3, 'name' => '微信相关'],['id' => 4, 'name' => '辅助学习'],['id' => 5, 'name' => '可视化布局'],];// 用foreach来遍历foreach ($navs as $key => $value) {echo "</br>键{$key}的栏目是{$value['name']}";}// 用for来遍历// for循环首先要获取数组的索引长度,用count(数组)来获取,跟js类似,先赋值一个i=0;然后i要小于数组的长度, i++递增for ($i = 0; $i < count($navs); $i++) {echo '</br>' . '键' . $i . '的栏目是' . $navs[$i]['name'] . '.';}?></body></html>
数组的单引号双引号定界符
<?php// error_reporting(0);//屏蔽系统错误级别,0为屏蔽,-1位不屏蔽$int = 23;var_dump($int);// 返回的是数字23$int = '23';var_dump($int);// 返回的是字符23/*** 字符串 定义在单引号、双引号、定界符* 单引号:无法解析变量与转义符* 双引号、定界符:可以解析变量与转义符* 定界符 用于输出长字符串,可以解析变量**/// 单引号示例+字符串拼接,字符串的拼接php中用 . 来拼接$age = '5';var_dump($age);echo $age;//单引号下的 字符串拼接示例, 字符串用''包裹echo '小王今年' . $age . '岁。';// 而单引号下如果不适用 . 拼接,将不识别变量 如下echo '小王今年$age岁';//双引号下将支持变量的识别解析,但不能准确的识别出变量的长短,需要用{}进行包裹,以防超出长度范围echo "小王今年{$age}岁";// 双引号/单引号示例2$name = '老王';echo "我是$name,我今年18岁。";echo '我是$name,我今年18岁。'; //单引号下将原样的输出,并不会解析出变量//定界符 <<<EXO 要输出的内容及变量 EXO; 以<<<大写字符开始 变量 大写字符结束;//先写一个一维数组$user = ['name' => '老王', 'age' => 18, 'tel' => 18888888888];//定界符好像不能再一行,如果在一行好像不能识别$username = <<<USER<div>{$user['name']}今年{$user['age']},他的电话是{$user['tel']}</div>USER;echo $username;//数组 是键值对的集合 $key => $value// 示例$user = ['name' => '老王', 'age' => 18, 'tel' => 18888888888];//访问数组内的成员echo $user['name']; //变量[键]//多维数组$users = [['name' => '老王', 'age' => 18, 'tel' => 18888888888],['name' => '老刘', 'age' => 19, 'tel' => 18888888889],['name' => '老杨', 'age' => 20, 'tel' => 18888888890],];// 先打印他的输出集合看一下var_dump($users);// 打印其中的某一个值var_dump($users[0]['name']); //多维数组中,内的数组也是有键的,键默认从0开始//2中特殊类型 (resource,null) 保存到外部资源的类型,和空类型,这里的空仅代表变量为空// resource 保存到外部资源的一个引用,资源是由专门的函数来建立和使用的// 资源类型/空类型$log = fopen('php.log', 'w'); //函数fopen()对文件操作,fopen('文件路径名','读写等操作')var_dump($log);// 发现一个问题,可能是权限不足,当时没有写入文件,用终端就行了// file_put_contents 向文件内写入文件// $read = file_put_contents('php.log', 'hello world');$read = file_put_contents('php.log', '你好啊');$reads = file_put_contents('php.log', '灭绝', FILE_APPEND);var_dump($read);var_dump($reads);//null空类型// null只是代表一个变量没有值 不代表变量内容为0,也不代表为''$avatar = null;// unset($users) //释放销毁变量 释放销毁$users变量
数组的模板语法:
<!DOCTYPE html><html lang="zh-CN"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title><? echo 'php页面中与html混编使用短标签及php模板语法'; ?></title></head><body><!-- 使用短标签需要在php配置文件中开启short_open_tag = On 选项 --><?php/*** 数组的遍历操作* 数组的遍历操作* foreach ($arr as $key => $value){** echo $value['name']* }*/$navs = [['id' => 1, 'name' => '前端课程'],['id' => 2, 'name' => '后端课程'],['id' => 3, 'name' => '微信相关'],['id' => 4, 'name' => '辅助学习'],['id' => 5, 'name' => '可视化布局'],];var_dump($navs);foreach ($navs as $key => $value) {echo "<br>当前键为{$key}栏目为{$value['name']} ";}?><!-- foreach模板语法 --><div><ul> <!-- 原生的写法,当前写法--><?php foreach ($navs as $key => $value) { ?><li><?= $value['name'] ?> </li><?php } ?></ul><ul><!-- 模板语法2: 在foreach起始部分将{}去除,替换成: 尾部用endforeach替换 --><?php foreach ($navs as $key => $value) : ?><li><?= $value['name'] ?></li><? endforeach ?></ul><ul><!-- 模板语法3:直接遍历 输出字符串 放在""双引号中 --><?phpforeach ($navs as $key=>$value){echo "<li>{$value['name']}</li>";}?></ul></div><!-- php模板语法 为了省略流程控制中或者循环遍历中 的{}对齐问题 --><!-- foreach ...endforeach if...endif switch... endswitch while...endwhile --></body></html>
php的系统函数及自定义函数
<?php/*** 函数 完成特定的功能的代码块* function 函数名(参数,参数可为多个值){* 函数体* return返回值** }**/echo mt_rand(1, 5);// mt_rand()其实就是一个函数,是系统内置的一个函数,随机数字函数echo abs(-88); //整值函数echo strtoupper('hello world'); //将小写转为大写//快速生成一个数组$arr = range(1, 10);var_dump($arr); //输出十个数组$arr = range(1, 10, 1); //随机10个数组并且间隔1var_dump($arr); //打印print_r($arr); //输出为数组格式echo strlen('hello world'); //计算长度////上面是系统定义的函数//////// 自定义函数// 使用function 来定义函数function add($a, $b){return $a + $b;}// 调佣函数echo add(2, 3);ob_clean();// 变量严格区分大小写,函数不区分大小写$username = 'mr.wang';echo $username;echo POW(3, 5); //求次方Var_Dump($username);ob_clean();$nows = '我不想写作业,我想玩';$res = str_replace('不想', '**', $nows);echo $res;// 以数组的方式替换 1比1数组替换$res = str_replace(['不想', '玩'], ['想使劲', '使劲写作业'], $nows);echo $res;//购物车?>
购物车计算总和
<!DOCTYPE html><html lang="zh-CN"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>购物车</title></head><body><?php$arr = [['name' => '苹果', 'id' => '1', 'num' => 1, 'price' => 5],['name' => '矿泉水', 'id' => '2', 'num' => 1, 'price' => 2],['name' => '冰红茶', 'id' => '3', 'num' => 1, 'price' => 5],['name' => '大红袍', 'id' => '4', 'num' => 1, 'price' => 120],];function pr($price, $num){return $price * $num;}$total_price = 0;foreach ($arr as $key => $value) {$total_price += pr($value['price'], $value['num']);echo $total_price . '<br>';}?><table border="1" ><thead><tr><td>品名</td><td>id</td><td>数量</td><td>价格</td></tr></thead><tbody><?php foreach ($arr as $key => $value) { ?><tr><td><?= $value['name'] ?></td><td><?= $value['id'] ?></td><td><?= $value['num'] ?></td><td><?= $value['price'] ?></td></tr><?php } ?></tbody><tfoot></tfoot></table><p>总和为:<?php echo $total_price; ?></p><button>购买</button></body></html>
示例截图:
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号