第九天(数组,预定义数组,函数,使用数据库)
来源:互联网 发布:寻侠乐理突破数据 编辑:程序博客网 时间:2024/05/20 23:34
复习:
掌握新语言的步骤:
(1)背景
(2)搭建环境
(3)变量和常量
(4)数据类型
标量类型:int、float、string、bool
复合类型:array、object
其它类型:null、resource
(5)运算符
算术、比较、逻辑、赋值、位、三目、特殊
(6)逻辑结构
顺序执行
选择执行 if…else… switch…case…break…
循环执行 while(){} do{ }while() for( ; ; ){ }
(7)通用小程序
※打印三角、九九乘法表、水仙花数、质数….
(8)函数和对象
(9)常用组件、工具、框架
(10)实用小项目
练习:输出100以内所有的整数
练习:输出100以内偶数的和
练习:输出100以内奇数的和
练习:输出Hello0、Hello1、Hello2…Hello10
今日目标:
(1)数组 —— 重点
(2)预定义数组 —— 重点
(3)函数 —— 掌握
(4)实用数据库连接函数 —— 重点&难点
1.PHP中的两种数组
(1)索引数组(Indexed Array):每个元素的下标都是一个数字,形如0、1、2…..N,数组的总长度为N+1
声明方式:$arr = [95, 78, 66]; $arr = ['丁丁', '当当','豆豆'] 访问元素:echo $arr[$i]; 添加元素:$arr[ ] = 80; 获取长度:echo count( $arr );
练习:创建一个数组,保存购物车中的三个商品的编号。
再向添加一个新的商品编号;再向添加一个新的商品编号;
输出现有的商品的数量;循环输出所有的商品编号
练习:创建一个数组,保存购物车中的三个商品的名称。
再向添加一个新的商品名称;再向添加一个新的商品名称;
输出现有的商品的数量;循环输出所有的商品名称
思考:一个PHP数组中可以放置纯数字、纯字符串,可以放置多个不同类型的值吗?
$arr = [ 8, ‘戴尔燃7000’, 5388.00, true, 1490123456789 ];
语法上可以!但实际项目中上述数组表意不清!
(2)关联数组(Assocation Array):每个元素的下标都是一个自定义的字符串,系统不会自动生成下标
声明语法:$arr = [ 'lid'=>8 , 'title'=>'戴尔燃7000', 'price'=>5388.00, 'isOnsale'=>true];元素数量:echo count( $arr);获取元素:echo $arr['title'];添加元素:$arr['shelfTime'] = 1490132455679;注意:关联数组每个元素的下标都是自定义的字符串,不是0/1/2/3...,不能使用传统for循环进行遍历。$user['uname']."<br>"其中uname的单引号不能省略!"$user[uname]<br>"其中的必须省略uname的单引号
练习:创建关联数字,保存一个用户的所有信息,编号、用户名、密码;
再向上述关联数字中添加新的下标:积分
再向上述关联数字中添加新的下标:是否在线
输出数组中元素的个数;
输出数字中每个元素的下标和值
2.逻辑结构——循环结构 —— foreach
foreach:对于数组中的每一对元素,都看作一个下标遍历指向一个值变量,都执行一次循环主体。
语法: foreach(
echovalue;
}
含义:依次把数组中的每一对下标=>值,赋值为指定的两个变量,执行一遍循环体。
提示:foreach循环既可以遍历关联数组,也可以遍历索引数组!
练习:创建一个关联数组,保存一个商品的信息,包括编号、名称、单价、上架时间,使用foreach遍历其中的每个元素。
练习:创建一个关联数组,保存一个商品的信息,包括编号、名称、单价、上架时间;
再创建一个关联数组,保存一个商品的信息,包括编号、名称、单价、上架时间;
再创建一个关联数组,保存一个商品的信息,包括编号、名称、单价、上架时间;
把上述三个关联数组保存在一个大的索引数组中,下标分别为0/1/2,使用循环输出整个大数组中所有的数据
练习:
创建一个关联数组,保存一个用户的信息,编号、用户名、电话、头像;
创建一个关联数组,保存一个用户的信息,编号、用户名、电话、头像;
创建一个关联数组,保存一个用户的信息,编号、用户名、电话、头像;
再创建一个索引数组,包含上述三个关联数组。
尝试使用for循环输出上面的大数组中的所有数据;
尝试使用foreach循环输出上面的大数组中的所有数据;
<?php/** 二维数组 **/#创建一个关联数组,保存一个用户的信息,编号、用户名、电话、头像;$user0 = [ 'uid'=>10, 'uname'=>'dingding', 'phone'=>'13501234567', 'avatar'=>'img/10.jpg'];$user1 = [ 'uid'=>11, 'uname'=>'doudou', 'phone'=>'13511234567', 'avatar'=>'img/11.jpg'];$user2 = [ 'uid'=>12, 'uname'=>'yaya', 'phone'=>'13521234567', 'avatar'=>'img/12.jpg'];//一个大数组,盛放上述三个小数组$userList = [$user0, $user1, $user2];#var_dump($userList);for($i=0; $i<count($userList); $i++){ $u = $userList[$i]; //获取大数组中的每个用户 echo $u['uid']." "; echo $u['uname']." "; echo $u['phone']." "; echo $u['avatar']."<br>";}echo "<hr>";foreach($userList as $v){ //遍历大数组中的每个用户 echo $v['uid']." "; echo $v['uname']." "; echo $v['phone']." "; echo $v['avatar']."<br>";}
练习:
学子商城中每个用户的“收货地址列表”中都可能包含多个收货地址,而每个收货地址又包含编号、接收人姓名、地址、联系电话四个属性。
试创建一个收货地址列表变量(二维数组),其中包含三个收货地址。
使用for输出所有的收货地址信息;
使用foreach输出所有的收货地址信息。
3.函数 —— 了解
若上述代码需要反复使用,多次复制粘贴会导致今后的代码维护工作很麻烦!
getMax{
}
上述代码就是在创建一个“函数”!
定义:是一段预定义好,有名称的,并可以被反复使用的代码块,其中可以包含多条可执行语句。
语法: function 函数名(形式参数列表){
函数执行主体;
return 返回值;
}
调用: 函数名(实参列表);函数名(实参列表);
练习:使用函数封装“需要反复调用”的代码
编写一段代码,从0输出到9;
把上述代码封装为一个函数:pringNumber;
调用上述函数;再次调用上述函数;再次调用上述函数;
函数名中可以包含数字、字母、下划线,不能为数字开头。 若包含多个单词,可以使用下划线法则、或者大/小驼峰法则。
函数声明时,参数列表中可以声明0~N个参数,用逗号分隔。 函数可以声明一个返回值,把自己内部计算后的结果返回给函数的调用者: return
值;函数体内此句后面不能再有其它的语句了。
练习:使用函数封装“比较难以编写”的代码
编写一段代码,输出一个九九乘法表;
把上述代码封装为一个函数:print99
调用上述函数;再次调用上述函数;再次调用上述函数;
练习:创建一个函数计算两个整数的和
创建一个整型变量
创建一个整型变量
把上述四行代码封装为一个函数;
调用该函数。
练习:创建一个函数leiJia(),接收一个整数做参数
调用该函数,计算1到10的累加和;
调用该函数,计算1到100的累加和;
练习:创建一个函数:arrAdd,接收一个整型数的数组做参数,函数体内计算该数组中所有元素的和,返回该和。
调用该函数,实参为:[1, 3, 5],得到返回的结果并输出;
调用该函数,实参为:[2, 4, 6, 8],得到返回的结果并输出;
Improved:改进的,改良后的
4.使用PHP预定义的函数连接MySQL服务器
早期PHP提供了一套函数用于操作MySQL: mysql_xxx();
后来又提供了一套性能更加优秀的操作MySQL的函数库: mysqli_xxx();
使用MySQLi函数库连接MySQL服务器的步骤:
提示:操作过程与“命令行客户端连接MySQL服务器”过程是一样的。
(1)连接到MySQL服务器
$conn = mysqli_connect('服务器地址', '用户名', '密码', '数据库名', 端口号);
(2)向MySQL服务器发送SQL命令
$sql = "....";$result = mysqli_query($conn, $sql);
(3)查看执行的结果
if($result===true){ //执行成功}else { //执行失败}
(4)断开到MySQL服务器的连接——可以省略
mysqli_close($conn);
课后练习:
(1)创建一个函数名为arrMax,接收一个数组做参数,函数体内查找出数组参数中的最大值,并返回该值。
调用上述函数,传递参数[10, 5, 30, 8],输出函数的返回值
(2)创建一个函数名为arrMin,接收一个数组做参数,函数体内查找出数组参数中的最小值,并返回该值。
调用上述函数,传递参数[10, 5, 30, 8],输出函数的返回值
(3)创建一个函数名为arrAvg,接收一个数组做参数,函数体内查找出数组参数中所有数值的平均值,并返回该值。
调用上述函数,传递参数[10, 5, 30, 8],输出函数的返回值
(4)创建一个SQL文件,其中编写如下的SQL语句:
删除并重建数据库:xuezi9,字符集使用UTF8;
创建表xz_user(uid, uname, upwd, email, phone)
(5)创建一个PHP文件,使用mysqli函数库中提供的mysqli_connect()函数连接到MySQL服务器,再使用mysqli_query()函数提交一条INSERT语句,向xz_user表中插入一条新的用户记录。
提示:上述操作由于涉及到数据库服务器和Web服务器,非常容易出错,需要慢慢的积累错误调试技巧。
- 第九天(数组,预定义数组,函数,使用数据库)
- 第一阶段第九天(函数递归调用,一维数组)
- JS学习第九天----数组
- 预定义数组
- PHP预定义数组
- PHP学习(十三)--预定义数组
- 第十九天 十三个数组函数
- php session预定义数组
- 预定义,条件编译,数组
- C++学习第九天:初次接触C++数组
- 学习Unity3D第九天之数组和遍历器。
- PHP预定义变量数组种类概念(转)
- php超全局数组(预定义变量)
- 第九天(函数进阶 · 二)
- Object-c:预定义,条件编译,数组
- php (九) PHP预定义数组
- 预定义超全局数组$_GET
- PHP提供的预定义变量数组
- 碳云智能为啥要买下这家视觉公司,还“顺便”建了个以色列 AI 中心?
- 服务器定期执行任务
- 指针与二维数组
- SQL Server 系统信息查询
- easyui 导航
- 第九天(数组,预定义数组,函数,使用数据库)
- 别只盯着亮光黑,苹果还为你增添了“绿色”
- Redis 集群教程
- 惠普又双叒叒卖身,这次“赚了”88亿!
- 全球 92 家医疗 AI 初创公司都在关注哪些方向?
- 关于iPhone 7,我只讲两点
- asp.net的魅力(1)
- Qml圆形进度条
- 枚举类