(1)自定义数组 —— 项目中的重点

(2)PHP预定义数组 —— 重点&难点

(3)自定义函数 —— 了解

(4)PHP预定义函数 —— 项目中的重点

1.自定义数组

数组:array,一个可以保存多个数值的变量

  定义一个数组

$ageList = [ 20, 38, 25, 37 ];

$nameSet = [ 'Tom', 'Mary', 'King' ];

$isMarriedArr = [ true, false, false, true ];

输出整个数组不能用echo,要用var_dump();

  获取数组中元素的个数(数组的长度)

echo  count($ageList);

操作某个元素:

echo  $nameSet[ 1 ];

$nameSet[ 1 ] = 'Maria';

  向一个数组中追加新元素

$nameSet[  ] = 'Scott';    #PHP会自动为新元素分配下标

[ ]运算符的三种用法:

(1)创建新数组:   $arr = [ 10, 30, 50 ];

(2)访问某个已有元素:  $arr[2] = 35;

(3)向数组中追加新元素:   $arr[ ] = 75;

练习:创建一个数组保存3个笔记本的标题,使用循环输出数组中的每个元素。再向数组中追加2个新的笔记本信息,使用循环输出数组中的每个元素。

PHP中数组的两种类型——重要知识点:

(1)索引数组:每个元素的下标是数字,形如0/1/2/3....

$arr = [10, 30, 50, 60];

$emp = [3051, 'Tom', 6000, true];

(2)关联数组:每个元素的下标是自定义的字符串

$emp = [ 'eid'=>3051,  'ename'=>'Tom',   'salary'=>6000,  'isMarried'=>true ];

结论:索引数组适合于存储多个相同含义的数据,如10个员工的姓名;关联数组适合于存储多个不同含义/类型的数据,如一个商品的多个信息。

练习:创建一个数组,保存学子商城中一个用户的信息,包含编号、用户名、性别、是否在线。

练习:创建一个数组,保存学子商城中一个用户的信息,包含编号、用户名、性别、是否在线。

练习:创建一个数组,保存学子商城中一个用户的信息,包含编号、用户名、性别、是否在线。

练习:创建一个数组,保存学子商城中一个用户的信息,包含编号、用户名、性别、是否在线。

练习:创建一个数组,保存学子商城中一个用户的信息,包含编号、用户名、性别、是否在线。

练习:创建一个数组,保存上述五个用户。

$userList = [ $user0, $user1, $user2, $user3, $user4 ];

$userList = [  [ ], [ ], [ ], [ ], [ ]  ]; 二维数组

午间练习:循环执行把上述二维数组中的每个用户信息输出到一行中

2.PHP中的循环结构 —— foreach循环 —— 了解

foreach:"为了每一个",针对数组中的每一个元素,执行一次循环体——只能用于遍历数组。语法:

foreach( $数组名  as  $变量名 ){

#循环主体

}

foreach( $数组名  as  $下标变量名=>$元素变量名 ){

#循环主体

}

$arr = [ 10,  30,  50,  70 ];

foreach( $arr  as  $v ){

echo  $v;

}

---------------------------------------

$v = 10;  执行一次循环主体;

$v = 30;  执行一次循环主体;

$v = 50;  执行一次循环主体;

$v = 70;  执行一次循环主体;

循环结束。

练习:创建一个数组,保存4个员工的姓名,使用foreach循环遍历出每个元素。 —— foreach可以遍历索引数组

练习:创建一个数组,保存一个笔记本信息,包括:编号、标题、价格,是否特价。使用foreach遍历输出每个元素的值。—— foreach可以遍历关联数组

for循环

foreach循环

能遍历索引数组吗

$arr=[10, 30, 50];

for($i=0; $i<count(...); $i++){

echo $arr[$i];

}

foreach($arr as $v){

echo $v;

}

可以跳序遍历吗?

for($i=0; $i<count(...); $i+=2){

echo $arr[$i];

}

不能

可以倒序遍历吗?

for($i=10; $i>=0; $i--){

echo $arr[$i];

}

不能

能输出1~10吗?

for($i=1; $i<=10; $i++){

echo $i;

}

不能

能遍历关联数组吗

$u=['uid'=>10, 'uname'=>'tom']

不能

foreach($u as $v){

echo $v;

}#项目中此用法很少!

3.PHP中的预定义数组变量

预定义变量:由PHP解释器自动为每个PHP文件创建的变量,程序员可以直接使用,无需自己手工声明。如下:

$_REQUEST:请求( request ),用于封装客户端发给服务器请求数据

$_GET:

$_POST:

$_FILES:

$_COOKIE:

$_SESSION:

初始情况下,上述几个变量都是关联数组: array(0){ }

(1)客户端浏览器如何给服务器发送请求数据?——浏览器用户

http://127.0.0.1/login.php?n=tom&p=123

页面地址后的?k=v&k=v字符串称为“查询字符串”/“请求参数”

(2)WEB服务器会如何处理客户端提交的请求数据呢?——WEB服务器

$_REQUEST = [ ];

$_REQUEST['n'] = 'tom';

$_REQUEST['p'] = '123';

(3)程序员编写的页面如何获取请求数据呢?——程序员

echo   $_REQUEST[ 'n' ];

echo   $_REQUEST[ 'p' ];

练习:创建add.php,客户端访问此页面时需要提交num1、num2和num3三个数据,服务器端页面接收这三个数据,向客户端输出三个请求数据的整数和。

练习:创建star.php,接收客户端提交的rows和cols两个请求数据,根据这两个数据输出指定行数和列数的※

练习:创建sum.php,接收客户端提交给服务器的start和end两个请求数据,服务器端页面输出从start到end的累加和

4.PHP中函数的基本概念

Function:函数,功能体,接收一些要处理的数据(称为参数),加以执行处理,得到特定的结果 —— 并可以反复多次执行。

程序员最怕的事情:Ctrl+C/V代码 —— 代码的可维护性差!

使用函数封装需要反复多次执行的代码!

  创建一个最简单函数:

function  函数名( ){

#函数中要执行的所有代码

}

运行/执行一次函数:

函数名( ) ;   #()表示“执行”

  创建一个可以接收运行参数的函数:   

function  函数名( $变量1, $变量2, .... ){     #形式参数

#函数中要执行的所有代码

}

运行/执行一次函数:

函数名( 值, 值, .... ) ;   #实际参数

练习:创建一个函数getScore(),其中声明三个变量,分别表示语文、数学、英语的成绩,输出三科总分。调用此函数三次。

练习:创建一个函数printStar(),其中输出一个5行10列的※矩阵。调用此函数三次。

课后练习:

函数练习

(1)创建一个函数getSum(),接收三个数字做参数,函数体中计算出这三个数字的代数和,并输出。调用此函数三次,每次调用传递不同的实参值。

(2)创建一个函数getAvg(),接收三个数字做参数,函数体中计算出这三个数字的平均值,并输出。调用此函数三次,每次调用传递不同的实参值。

数组练习:

(1)创建一个数组,保存学子商城中一个用户的信息,包含用户编号、用户名、密码、邮箱、手机、头像、性别;

(2)再创建一个数组,保存学子商城中一个用户的信息,包含用户编号、用户名、密码、邮箱、手机、头像、性别;

(3)再创建一个数组,保存学子商城中一个用户的信息,包含用户编号、用户名、密码、邮箱、手机、头像、性别;

(4)再创建一个数组,保存学子商城中一个用户的信息,包含用户编号、用户名、密码、邮箱、手机、头像、性别;

(5)创建一个空数组,将上述四个商品的数据保存到其中;输出这个大数组中的所有数据 —— 尽可能漂亮的输出。

PHP-自定义数组-预定义数组-自定义函数-预定义函数的更多相关文章

  1. c++-变量,this指针,全局函数,成员函数,自定义数组类

    区分变量属于哪个对象 c++对象管理模型初探 C++类对象中的成员变量和成员函数是分开存储的,C中内存四区仍然有效 C++编译器对普通成员函数的内部处理(隐藏this指针) this指针解决函数形参和 ...

  2. php 指针遍历、预定义数组和常用函数

    <?php /*//定义 $attr = array(1,2,3); $attr[] = 1; $attr = array("one"=>"hello&quo ...

  3. php学习笔记 [预定义数组(超全局数组)]

    <?php  预定义数组: * 自动全局变量---超全局数组 * * 1.包含了来自WEB服务器,客户端,运行环境和用户输入的数据 * 2.这些数组比较特别 * 3.全局范围内自动生效,都可以直 ...

  4. PHP数组——数组正则表达式、数组、预定义数组

    正则表达式 1.替换 $s = "hello5world"; $s = preg_replace("/\d/","#",$s); echo ...

  5. PHP数组(数组正则表达式、数组、预定义数组)

    正则表达式 1.替换 $s = "hello5world"; $s = preg_replace("/\d/","#",$s); echo ...

  6. 类模板、Stack的类模板实现(自定义链栈方式,自定义数组方式)

    一.类模板 类模板:将类定义中的数据类型参数化 类模板实际上是函数模板的推广,可以用相同的类模板来组建任意类型的对象集合 (一).类模板的定义 template  <类型形参表> clas ...

  7. 利用NSUserdefaults来存储自定义的NSObject类及自定义类数组

    利用NSUserdefaults来存储自定义的NSObject类及自定义类数组 1.利用NSUserdefaults来存储自定义的NSObject类 利用NSUserdefaults也可以来存储及获取 ...

  8. java面试题:已知一个数组[2,4,6,2,1,5],将该数组进行排序(降序,不能用工具类进行排序),创建两条线程交替输出排序后的数组,线程名自定义

    package com.swift; import java.util.Arrays; import java.util.Comparator; public class ArrayThread_Te ...

  9. C#中自定义类数组和结构数组的使用

    如有雷同,不胜荣幸,若转载,请注明 C#中自定义类数组和结构数组的使用 最近在很多项目中发现很多时候给定的数组要实现某个逻辑或处理很是麻烦,一维数组,二维数组,,,等等需要经过n多转换,还不如自己写一 ...

随机推荐

  1. vue源码核心部分

    1.模板编译   初始化时做的:template ==parse()==>ASTtree ==generate()==>render函数  ==> mount(调用dom方法) 每次 ...

  2. 使用 JavaScript 将 XML 转成 JSON

    function xmlToJson(xml) { // Create the return object var obj = {}; if (xml.nodeType == 1) { // elem ...

  3. beef + msf 实现内网渗透

    在内网渗透方面,最为大众所知道的就是xp系统的ms08067漏洞,通过这个漏洞可以对未打上补丁的xp系统实现getshell, 但是经过笔者发现,这种漏洞攻击在被攻击机开上windows防火墙的时候是 ...

  4. [转]IIS 日志记录时间和实际时间 不一样

    今天偶然发现 2003 系统IIS 日志记录时间和实际时间总是差了8个小时,也就是慢了8个小时.苦苦找了半天才发现如下办法能解决 ,特发来分享下 解决1:如果 IIS日志记录默认使用的是W3C扩展日志 ...

  5. React+ES6+Webpack深入浅出

    React已成为前端当下最热门的前端框架之一 , 其虚拟DOM和组件化开发让前端开发更富灵活性,而Webpack凭借它异步加载和可分离打包等优秀的特性,更为React的开发提供了便利.其优秀的特性不再 ...

  6. DBsever工具连接mysql数据库

    当我们安装网DBeaver的时候,怎么通过这个工具来连接Mysql数据库呢 像这个地方就按平时你的数据库信息输入就可以了 接下来配置JDBC的内容 重点说一下驱动包的版本问题,因为我安装的mysql是 ...

  7. [UnityAPI]SerializedObject类 & SerializedProperty类

    以Image类为例 1.MyImage.cs using UnityEngine; using UnityEngine.UI; public class MyImage : Image { ; pro ...

  8. git保存用户名和密码

    git保存用户名和密码 简介:tortoiseGit(乌龟git)图形化了git,我们用起来很方便,但是我们拉取私有项目的时候,每次都要输入用户名和密码很麻烦,这里向大家介绍怎么避免多少输入 试验环境 ...

  9. 工程C++基础

    大家好,我是老A.今天我们要学习的是工程C++,这是一个不可描述的东西.我主要讲的是template. template的用处是装逼,所以很重要. C++配备了函数模板和类模板.函数模板就是我们平时的 ...

  10. Vue.js连接后台数据jsp页面  ̄▽ ̄

    <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding= ...