当前位置:   article > 正文

Web开发-PHP基础篇(一~二)_web 用php

web 用php

Web开发-PHP基础篇(一-二)

学前准备

学前准备:html、css

PHP超文本预处理器

PHP 是一种创建动态交互性站点的强有力的服务器端脚本语言。

php擅长网站开发 php吸收c java perl

允许网站开发人员快速编写的动态页面(信息的更新)

php可以运行在windows,linux等各种操作系统上!

浏览器>输入url地址>显示网站内容

在这里插入图片描述

网络主机(硬件)运行 Web服务器(软件)

apache管理web服务器

php应用服务器执行php代码,交给apache

mysql数据库管理系统 可单独安装一台计算机里

url地址

格式:http://host[:port][abs_path]

理解:

http://表示要通过HTTP协议定位网络资源

host表示合法的internet主机域名或者ip地址

port指定一个端口号,可以省略默认为80端口

abs_path被请求资源的位置

DNS服务器:IP 域名

一、PHP基本语法

1、初识PHP脚本程序

1.PHP语言标记
(1)PHP开始标记

<?php
  • 1

(2)PHP结束标记

?>
  • 1
//完整开始结束写成:
<?php ?>
  • 1
  • 2

php解析器叫做PHP应用服务器

(3)我们的页面最终是通过html,css,js来展示出一个炫丽的界面
(4)PHP代码可以嵌入到html代码中任何位置,并且可以嵌入任意多个

在这里插入图片描述
在这里插入图片描述
(5)文件末尾的?>结束标志可以省略
2.指令分隔符";"
(1)在一些PHP语句的结尾要加上;表示一句话的结束,当然 也不需要可以的去记,因为你一旦漏掉分号,程序根本执行不了,会报错!
(2)结束标记?>就隐含了一个; 所以在?>之前的PHP语句可以省略掉;
3.注释
(1)多行注释

/*
	多行注释
*/
  • 1
  • 2
  • 3

(2)单行注释

//我是单行注释
  • 1

4.遇到空白的处理
空格,tab制表符,换行 (在英文输入法中)这些写在咱们的PHP代码里面是没有问题的。 可以利用这些空白 来增加我们代码的清晰性和可读性!

2、变量

变量是用于临时(只有在我们的程序的运行过程中才存在)存储值(数据)的容器

1.变量的声明
在我们一些编程语言里面比如C语言 使用变量之前要事先通知,事先声明一下! **注意:*在我们的PHP程序里面 使用变量之前是不需要声明*的!

变量用于存储 数字、文本字符串 或者数组这些数据!

$变量名=数据()
  • 1

= 在数学里面是‘等于’的意思,在我们的程序语言里面,它不是等于号,它是 ‘赋值操作符’

2.变量的释放(销毁)

unset($变量名称)
$and1=1;
unset($and1);//销毁$and1变量
echo $and1;//提示出错,因为变量已经被销毁了!
  • 1
  • 2
  • 3
  • 4

3.变量的命名规则
(1)变量名称严格区分大写
$name,$NAME,$Name都是不同的变量
(2)字母或者下划线开头,后面接任意数量的字母数字下划线都可以!

例:

$nameudhfdjkjv

$_1464fbgrf
  • 1
  • 2
  • 3

错误的命名方式:

$1name  错误点:以数字开头了
$n ame  错误点:中间有空白字符
  • 1
  • 2

*总结一下:*变量名只能包含 字母 数字 下划线 并且必须以字母或者下划线开头

(3)最好不要用一些关键字作为变量名称(因为在其他的编程语言里面是完全不被允许的)!

关键字:

在这里插入图片描述

4.可变变量

//可变变量
$abc='test';//定义了一个变量$abc里面存了值test
$$abc='小明';//$test='小明';
echo $test;
  • 1
  • 2
  • 3
  • 4

5.变量的引用赋值

$a=1000;
/*$b=$a;//相当于把$a的值,复制一份再赋值给$b这个变量*/
$b=&$a;//相当于给$a起了一个别名,操作其中任何一个,都会影响到另外一个变量的值!
$b=20;
echo $a;
  • 1
  • 2
  • 3
  • 4
  • 5
3、变量类型

概述:变量类型是指保存在该变量中的数据类型。PHP(弱类型语言)对变量类型看的比较淡

使用var_dump(变量名)可以输出变量的类型和变量值!

1.变量类型简介

(1)bool (布尔型)

$a=true;
var_dump($a);
  • 1
  • 2

往变量里面存true或false,那这个变量就是布尔型

(2)int (整型)

往变量里面存整数,那这个变量就是整型

(3)float (浮点型,也称double)

$a=1.1;
var_dump($a);
  • 1
  • 2

往变量里面存小数,那这个变量就是浮点型

(4)string (字符串)

字符串就是是一系列的字符组成串在一起

1单引号:

$b=1;
$a='qwzftest..';
var_dump($a);
echo $a;
  • 1
  • 2
  • 3
  • 4

单(双)引号里不能直接放单引号!!要放单引号,需要在单引号前加反斜杠\转义

如:

$a='qwzftest\'afc';
  • 1

单引号里的变量不会被解析。所以在定义一些简单的字符串的时候使用单引号,效率比较高

2双引号

$b=100;
$a='te$bst......';
$a="te{$b}st......";//双引号里的变量$b({$b})会被解析
var_dump($a);
echo $a;
  • 1
  • 2
  • 3
  • 4
  • 5

3定界符

$b=200;
$a=<<<www
dwqdqwdwq{$b}dwqdqdqdqdwqdwqcwcfwefwefcscwec
www;
var_dump($a);
  • 1
  • 2
  • 3
  • 4
  • 5

(5)array (数组)

(6)object (对象)

(7)resource (资源)

(8)NULL
null表示一个变量没有值,表示空
将变量直接赋值为null
声明的变量尚未被赋值
被unset函数销毁的变量

$a=1234;
unset($a);
var_dump($a);
  • 1
  • 2
  • 3

2.变量类型相互转换

强制转换:

$a='小明';
$b=(int)$a;
var_dump($a);
var_dump($b);
  • 1
  • 2
  • 3
  • 4
4、常量

**1.概念:**常量是用于临时(只有在我们的程序的运行过程中才存在)存储值(数据)的容器
2.定义和使用

define('常量名称',常量值) 或者 define("常量名称",常量值)

常量的命名:
(1)和变量一样 只能包含字母数字下划线 并且必须以 字母或者下划线开头
(2)按照惯例常量名字总是大写的
(3)自定义的常量是严格区分大小写的
defined()函数来检查是否定义了某个常量

3.常量和变量的区别

(1)常量前面没有美元符号($)
(2)常量只能用define()函数定义,不能通过赋值语句
(3)常量可以不用理会变量范围的规则而在任何地方定义和使用
(4)常量一旦被定义就不能被重新定义或者取消定义
(5)常量的值只能是bool,int,float,string类型

4.预定义常量

预定义常量就是PHP内核已经帮我们定义好的常量

其中有的预定义常量是一__开头的,这些预定义常量我们又叫它魔术常量

代码所在的位置不同,值也是不同的,所以它叫魔术常量
八个常用的魔术常量

在这里插入图片描述
预定义常量是不区分大小写的

5、运算符

**概述:**一些符号,这些符号可以将变量或者数据执行某中运算!
1.算术运算符
(1)+

$a=1;
$b=2;
$c=$a+$b;
echo $c;
  • 1
  • 2
  • 3
  • 4

(2)-
第一个意思: 减号

$a=10;
$b=2;
$c=$a-$b;
echo $c;
  • 1
  • 2
  • 3
  • 4

第二个意思: 取反

$a=1;
$b=-$a;
echo $b;//-1
echo '<br />';
echo $a;//1
  • 1
  • 2
  • 3
  • 4
  • 5

注意:取反并不会影响到被取反变量本身的值!
(3)* 乘号

$a=4;
$b=2;
$c=$a*$b;
echo $c;
  • 1
  • 2
  • 3
  • 4

(4)/ 除号

$a=10;
$b=2;
$c=$a/$b;
echo $c;
  • 1
  • 2
  • 3
  • 4

(5)% 取模

$a=12;
$b=2;
echo $a%$b;
  • 1
  • 2
  • 3

(6)++ 自增
前++
当在一个语句里面需要使用到被自增的变量的值的时候,前++会先执行自增,然后再返回自增之后的值!

$a=10;
echo ++$a;//11
  • 1
  • 2

后++
当在一个语句里面需要使用到被自增的变量的值的时候,后++会先返回变量的值然后再去执行自增

$a=10;
//++$a;//$a=$a+1;
//$a++;//$a=$a+1;
echo $a++;//echo $a;$a=$a+1;
echo '<br />';
echo $a;//11	
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

注意:

$a=10;
++$a;//这种情况不需要用到自增变量值的时候,和后++无区别
echo $a;
  • 1
  • 2
  • 3

(7)-- 自减
前–

$a=10;
//$a--;//$a=$a-1; 和--$a没区别;
echo --$a;//$a=$a-1;echo $a;
echo '<br />';
echo $a;
  • 1
  • 2
  • 3
  • 4
  • 5

后–

$a=10;
//$a--;//$a=$a-1; 和--$a没区别;
echo $a--;//echo $a;$a=$a-1;
echo '<br />';
echo $a;
  • 1
  • 2
  • 3
  • 4
  • 5

注意:自增或者自减是对变量而言的!

2.字符串运算符

. 连接运算符
$a='小明';
$b='测试字符串连接符';
echo $a.$b;
  • 1
  • 2
  • 3
  • 4

3.赋值运算符
注意:
赋值运算符整个语句是有值的,所以整个语句就是一个表达式,所以我们也可以这么写:
$a=$b=2;相当于$a=($b=2);也相当于$a=2;$b=2;
= 把右边的值赋给左边的变量
$a=1;
二元运算符

表达式是 PHP 最重要的基石。在 PHP 中,几乎所写的任何东西都是一个表达式。简单但却最精确的定义一个表达式的方式就是“任何有值的东西”。

+=
$a=1;
$b=2;
$a+=$b;//$a=$a+$b;
echo $a;
  • 1
  • 2
  • 3
  • 4
  • 5
-=
$a=2;
$b=1;
$a-=$b;//$a=$a-$b
echo $a;
  • 1
  • 2
  • 3
  • 4
  • 5

4.比较运算符
*概念:*对操作数(按照比较运算符的要求,规则)进行比较。如果比较出的结果满足比较运算符的要求那么结果就是true(真,成立,满足),否则就是false(假,不成立,不满足)
PHP中规定:
使用echo输出布尔类型值的时候
echo true;它在页面中会输出1
echo false;它会在页面中什么都不输出
所以说我们在测试的过程中如果需要输出布尔类型值的时候我们最好使用var_dump()来输出更明了的结果!
(1)== 值是否相等
如果值相等则就是 true(真,成立)
如果值不相等那么就是false(假,不成立)

$a=1;
$b=1;
var_dump($a==$b);//true
  • 1
  • 2
  • 3

(2)=== 全等(值要相等,类型也要相等)
如果两边操作数的值 全等那么就是true否则就是false

$a=11;
$b='11';
//var_dump($a==$b);//true
var_dump($a===$b);//false
  • 1
  • 2
  • 3
  • 4

3)!= 值是否不相等
如果两边操作数的值不相等那么就是true,否则就是false

$a=1;
$b=11;
var_dump($a!=$b);//true
  • 1
  • 2
  • 3

(4)<> 同上
(5)!== 不全等
如果两边的操作数不全等那么就是true,否则就是false

/*
$a=1111;
$b=2;
var_dump($a!=$b);//true
var_dump($a!==$b);//true
*/
$a=11;
$b='11';
var_dump($a!=$b);//false
var_dump($a!==$b);//true,$a不全等于$b
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

(6)< 小于
比较两边操作数的值,前面的是否小与后面的

$a=1;
$b=1;
var_dump($a<$b);//false,$a小与$b这句话正确还是错误
  • 1
  • 2
  • 3

(7)> 大于

$a=10;
$b=1;
var_dump($a>$b);
  • 1
  • 2
  • 3

(8)<= 小于等于

$a=1;
$b=1;
var_dump($a<=$b);//$a小与等于$b就是true,否则就是false
  • 1
  • 2
  • 3

(9)>= 大于等于

$a=2;
$b=1;
var_dump($a>=$b);//true
  • 1
  • 2
  • 3

5.逻辑运算符
概念:对表达式进行逻辑运算,运算出的结果是布尔类型的值(true,false)
要求:参与逻辑运算的表达式的值是布尔类型的值,如果不是布尔类型的值会被PHP自动转换成布尔类型的值,然后再参与运算!
(1)逻辑与
and 或者 &&
运算规则:左右两边的表达式的值都为true的时候,运算的结果就是true
否则只要其中任意一个为false,运算的结果就是false;
现实举例:
true 及格
false 不及格
左右两边的表达式就是我们要考试的科目;
要求:当语文和数学都及格的时候那么,最终的结果才能够通过(true),否则就是不通过(false)

$a=false;//语文
$b=true;//数学
var_dump($a && $b);
  • 1
  • 2
  • 3

中间隐含一个问题:“短路”,运算符的优先级的问题!
我们的程序语言的设计者认为:

只要有逻辑运算符 (逻辑与,逻辑或)那么运算结果就是就是一个true或者false
那个这个整个运行的过程就不重要了!
当然短路问题并不会遇到太多,就算遇到也不会有什么影响!

(2)逻辑或
or 或者 ||
运算规则:左右两边的表达式的值有一个为true,运算的结果就是true,只有当两边的值都是false的时候,结果才会是false

例:

$a=false;//语文
$b=true;//数学
var_dump($a || $b);		
  • 1
  • 2
  • 3

现实举例:
要求:当语文和数学有一门及格那么最终的结果就是通过true
中间隐含一个问题:“短路”,运算符的优先级的问题!
我们的程序语言的设计者认为:

只要有逻辑运算符 (逻辑与,逻辑或)那么运算结果就是就是一个true或者false
那个这个整个运行的过程就不重要了!
当然短路问题并不会遇到太多,就算遇到也不会有什么影响!

(3)逻辑异或
xor
运算规则:左右两边的表达式的值不一样的时候结果就是true,如果一样那么运算的结果就是false

例:

$a=false;
$b=false;
var_dump($a xor $b);
  • 1
  • 2
  • 3

(4)逻辑非
!
运算规则:将原来表达式的值否定掉,原来是true,那么结果就是false。原来是false,那么结果就是true
6.位运算符
7.其他运算符
(1)? :
三元运算
格式:

表达式1 ? 表达式2 : 表达式3;
如果表达式1的值为true,那么就执行表达式2,否则那么就执行表达式3
$a=false ? 10 : 20;
echo $a;//20
  • 1
  • 2
  • 3
  • 4

(2)可以把系统的命令放在里面执行! 涉及到跨平台:

$a=`ipconfig`;
$b=`ifconfig`;
var_dump($b);
  • 1
  • 2
  • 3

(3)@
屏蔽表达式可能发生错误!
echo @$a;
(4)=>
(5)->
(6)instanceof
8.运算符的优先级
*优先级的概念:*谁的优先级别高就先算谁
结合方向:规定了从那个方向开始算的问题!
优先级归纳:
(1)[无]递增递减
(2)[右]逻辑非!
(3)[左]乘,除,取余
(4)[左]加,减,字符串连接符
(5)[无]包含大于号或者小于号的比较运算符
(6)[无]不包含大于号或者小于号的比较运算符
(7)[左]逻辑与&&
(8)[左]逻辑或||
(9)[左]? :
(10)[右]赋值运算符
(12)[左 ]逻辑异或xor
圆括号的作用:
用圆括号可以将表达式里面的某一块看成一个整体!
使用括号可以增强代码的可读性。

二、流程控制

对PHP程序执行的过程进行控制!

1、顺序执行

自上而下的执行即可! 对这个执行过程没有控制!

2、分支执行

分支执行可以根据条件是否满足来选择执行某些代码,PHP的分支执行主要通过两种语句(if,switch)来实现!
1.if语句
注意:我们if语句的表达式所控制的代码,最好用花括号括起来,哪怕就是一条语句也用花括号括起来!
if语句可以嵌套,这是根据实际需求来的!
(1)单向条件
if(表达式) 语句1;
表达式的值为true 那么就执行语句1,否则就不执行!

例:

$pass=60;
$a=40;
if($a>=$pass){
echo '恭喜,考试通过';
echo 'dwqdwqdq';
//.......各种其他语句!
}
echo '代码执行结束!';
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

(2)双向条件

例:

$pass=60;
$a=40;
if($a>=$pass){
echo '恭喜你!考试通过啦!';
//.......
}else{
echo '很遗憾,您的科目没有通过!';
//.......
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

(3)多向条件

例:

$a=84;
$grade1=60;//低于60不及格
$grade2=75;//及格
$grade3=85;//良好
if($a<$grade1){
echo '不及格';
}elseif($a<$grade2){
echo '童鞋你及格了';
}elseif($a<$grade3){
echo '良好!';
}else{
echo '优秀';
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

2.switch语句

switch(表达式){
	case1://case相当于==
	语句块1;
	break;
	case2:
	语句块2;
	break;
	.......
	default:
	语句块n
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
注意点:
1)表达式的值最好是整形或者字符串!
2)不要忘记break语句!来跳出switch语句!每个case语句后面都加上break
3)如果某个case语句后面并没有接语句块,那么就说明这个语句块的内容是同下!
4)case后面的语句块是不需要{}括起来的
  • 1
  • 2
  • 3
  • 4
  • 5
3、循环执行

计算机最擅长的功能之一就是按照规定的条件,重复执行某些操作,这是程序设计中最能发挥计算机特长的程序结构。
1.while语句

while(表达式){
	各种语句....
}
  • 1
  • 2
  • 3

当表达式的值为true,那么就执行下面的语句块, 当语句块执行结束之后,继续返回上面来判断表达式的值是true还是false,如果还是true,那么就继续执行语句块。直到这个表达式的值为false,那么这个while语句就执行结束了!

例:

$i=0;
while($i<10){
echo $i++.'<br />';
}
echo '执行结束了!';
  • 1
  • 2
  • 3
  • 4
  • 5

2.do…while语句

do{
	各种语句
}while(表达式);
  • 1
  • 2
  • 3

与while语句区别就是,do while语句至少会执行一次!
3.for语句

for(表达式a;表达式b;表达式c){
	各种语句
}
  • 1
  • 2
  • 3

表达式a:会放一些初始化话的语句,$i=0,放多个表达式,中间用,隔开
表达式b:会放一些用来判断true或者false的表达式!,也可以放多个表达式,中间用,隔开
表达c:会放一些对初始化的变量进行自增的语句!放多个表达式,中间用,隔开

表达式a
表达式b 如果是true
语句块
表达式c
表达式b
  • 1
  • 2
  • 3
  • 4
  • 5
4、特殊的流程控制语句

1.break语句
作用:用于switch语句,for,while,do…while,foreach,用于中断这些语句! 后面可以接上一个数字来表示跳出几层循环!默认不加就是跳出当前循环语句!
2.continue语句
作用:只能用在循环语句,跳出本次循环,并不是结束整个循环语句!
3.exit()语句
作用:结束当前整个程序的执行!
和die()作用一样

三、函数

1、自定义函数
function 函数名([形式参数1,形式参数2,....形式参数n]){
		//各种PHP代码....
		//......
		return 表达式;//也可以不返回,如果不写那么默认返回null
}
  • 1
  • 2
  • 3
  • 4
  • 5

函数的调用: 函数的调用需要遵循定义函数的时候写的规则,一一对应,将具体实参传给定义函数时候写的形参
调用函数之后执行的过程是相对独立的,互补干扰,默认没有联系
执行完毕返回调用的位置继续向下执行
return 函数的返回值:返回给调用者,默认返回null

如:

<?php 
function test($a,$b){//形参
	echo $a+$b;
}
test(2,4);
?>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
2、PHP变量的范围

1.局部变量

function test(){
	$a=1;//局部变量$a,仅在函数内部有效
}
echo $a;//输出$a不存在
  • 1
  • 2
  • 3
  • 4

2.全局变量

$i=10;//全局变量(外部变量)
define('MY_NAME','xiaoming');
function test(){
	echo MY_NAME;
	global $i;//声明$i全局变量,函数内部才可以使用$i
	echo $i;
	$a=1;
}
//include ''引入
test();
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

3.静态变量

在这里插入图片描述

function test(){
			static $a=10;//静态变量$a,初始化静态变量,仅在第一次调用的时候执行
			echo ++$a;//当第二次执行这个函数的时候$a这个变量依然存在并且里面的值也依然存在
}
		test();
		echo '<br />';
		test();
		echo '<br />';
		test();
		echo '<br />';
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
3、参数的传递

1.按值传递参数
传递参数的时候默认使用
对形参的操作,根本不是影响到实参(变量)的值,两者相当于没有联系!
2.按引用传递参数
按引用传递参数,相当于形参和实参指的是同一个人,只是名字不一样,对于形参的操作会直接影响到实参(变量);
3.函数的默认参数
可以给形参设置默认值,设置方法:直接赋值
给形参加默认值的时候是重右往左加的,右边的必须有,才能够给左边的加

例:

<?php
function test($a,$b=100){
	echo $a+$b;
}
test(200);
?>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

4.可变长度参数列表
PHP提供给我们的,可以直接使用

func_get_args();//返回全部参数
func_get_arg();//返回第()参数,从0开始计数
func_num_args();//返回所在自定义函数的个数
  • 1
  • 2
  • 3

​ 这三个函数可以使用在我们的自定义函数内部,能够返回给我们一些关于参数的信息!

4、可变函数(变量函数)

直接把函数赋值给变量

例:

function test(){
	echo "asdff";
}
$a='test';
$a();
echo $a;
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

​ 可变函数不能用于例如 echo,print,unset(),isset(),empty(),include,require 以及类似的语言结构。需要使用自己的包装函数来将这些结构用作可变函数

5、递归函数

递归函数即在函数内部自己调用自己的函数。
递归函数:
(1)函数在被调用的执行过程中会在内存里面分配空间用于存储临时数据,那么函数在执行过程中默认之间时没有联系的(除了静态变量,按引用传,全局变量)。里面的变量默认都是局部变量,相互之间没有影响!
(2)递归函数,在函数的内部需要有适时结束函数运行的条件!

例:

function test($a){
		echo $a.'&nbsp;';
		if($a>0){
			test($a-1);
		}
		else{
			echo '-------';
		}
		echo $a.'&nbsp;';
	}
test(5);
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

执行结果:
在这里插入图片描述

查看网页源代码:

在这里插入图片描述

6、内部(内置)函数

PHP提供许多现成的函数或者结构,可以在实际开发中直接使用。
还有一些函数需要开启特定地 PHP 扩展模块,否则在使用它们的时候就会得到一个致命的“未定义函数”错误。
常用的内置函数或扩展的函数,有这样的需求,才会去找对应的函数。

四、数组

数组:
在这里插入图片描述

1、数组类型

复合数据类型

2、数组创建

方法一:
变量名称[索引值]=数据;
变量名称[]=数据;//不写索引值默认是 索引数组,从0开始

例:

//$student[索引值]=具体的值//索引数组
$student[0]=12;
$student[1]='小明';
$student[2]=true;
$student[3]=32.8;
//需要使用print_r()函数来输出数组的具体内容
print_r($student);
//var_dump($student);
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

在这里插入图片描述

//$student[索引值]=具体的值//关联数组
$student['age']=12;
$student['name']='小明';
$student['sex']=true;
$student['grade']=32.8;
//需要使用print_r()函数来输出数组的具体内容
print_r($student);
//var_dump($student);
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

[外链图片转存失败(img-xMZjv83W-1563263201070)(12.png)]

方法二:
变量名称=array(
索引值=>数据,

);

例:

$student=array(12,'小明',true,32.8);
print_r($student);
//var_dump($student);
  • 1
  • 2
  • 3

在这里插入图片描述

//还可以写成
$student=array(
    0=>12,
    1=>'小明',
    2=> true,
    3=>32.8
);
print_r($student);
//var_dump($student);
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

关联数组同上

数据里面还可放数组类型的数据,同一个数组中存储任何类型的数据
多维数组:
访问数值的方法
变量名称[索引值][索引值]…

例:

//二维数组
$student=array(
    0=>array(15,'小红',true,63.2),
    1=>array(16,'小明',true,70.3),
    2=>array(17,'小张',true,65.4)
);
print_r($student);
//var_dump($student);
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

在这里插入图片描述

3、数组的遍历

遍历数组:每个都经历一遍
(1)for循环
用的比较少,因为有缺陷

count(数组)返回数组里面数据的个数,还可以获取多维数组的个数

例:

$student=array(12,'小明',true,32.8);
echo count($student);
  • 1
  • 2

在这里插入图片描述

(2)foreach语句来实现遍历数组的目的

foreach(数组变量 as 变量1){
	//每次循环执行的语句
	变量1代表当前正在经历(访问)的数据
}
  • 1
  • 2
  • 3
  • 4

例:

$student=array(12,'小明',true,32.8);
foreach($student as $value){
	echo $value.'<br />';
}
  • 1
  • 2
  • 3
  • 4

在这里插入图片描述

foreach(数组变量 as 变量1=>变量2){
	//每次循环执行的语句
	变量1代表当前正在经历(访问)的数据的索引值
	变量1代表当前正在经历(访问)的数据
}
  • 1
  • 2
  • 3
  • 4
  • 5

例:

$student=array(12,'小明',true,32.8);
foreach($student as $key=>$value){
	echo $key.'-'.$value.'<br />';
}
  • 1
  • 2
  • 3
  • 4

在这里插入图片描述

规则多维数组的遍历:

$arr=array(
    0=>array(15,'小红',true,63.2),
    1=>array(16,'小明',true,70.3),
    2=>array(17,'小张',true,65.4)
);
foreach($arr as $brr){
    foreach($brr as $val){
        echo $val.'<br />';
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

在这里插入图片描述

不规则多维数组的遍历,可以用递归思想解决

4、预定义超全局数组变量

已经定义过(存在)的变量(存放的数据的类型是数组)
超全局:超级全局变量,作用域(有效区域)

传递数据(提交数据)给服务器端主要两种方式

1.get方式

比如:

?参数名=参数值&参数名=参数值......
  • 1

http://localhost/php/index.php?参数名=参数值
在服务器端(请求的php文件这边)可以通过$_GET来获取到
$_GET索引值为参数名,索引值对应的数据就是参数值

<?php
var_dump($_GET);
?>
  • 1
  • 2
  • 3

在这里插入图片描述

缺点:不太安全

在这里插入图片描述

在这里插入图片描述

2.post方式

比如表单 post发送过来的!
可以通过$_POST来获取到!

在这里插入图片描述
在这里插入图片描述

5、处理数组的相关函数

(1)array_count_values统计数组中所有值出现的次数

$array = array(1, "hello", 1, "world", "hello");
print_r(array_count_values($array));//函数返回数组类型的数据
//print_r($array);//原来的数组不会受到任何影响
  • 1
  • 2
  • 3

在这里插入图片描述

(2)array_key_exists检查给定的键名或索引是否存在于数组中

$search_array = array('first' => 1, 'second' => 4);
var_dump(array_key_exists('second',$search_array));
  • 1
  • 2

在这里插入图片描述

(3)array_search在数组中搜索给定的值,如果成功则返回相应的键名

$array = array(0 => 'blue', 1 => 'red', 2 => 'green', 3 => 'red',4=>15);
var_dump(array_search('15', $array,true));
  • 1
  • 2

在这里插入图片描述

(4)count计算数组中的单元数目或对象中的属性个数

$array = array(0 => 'blue', 1 => 'red', 2 => 'green', 3 => 'red',4=>15);
var_dump(count($array));
  • 1
  • 2

在这里插入图片描述

(5)in_array检查数组中是否存在某个值

$os = array("Mac", "NT", "Irix", "Linux");
var_dump(in_array('Mac', $os));
  • 1
  • 2

在这里插入图片描述

(6)list把数组中的值赋给一些变量

$arr=array(60,80,100);
list($sunshengli,$xiaohong,$xiaoming)=array(60,80,100);
echo $sunshengli;
  • 1
  • 2
  • 3

在这里插入图片描述

(7)asort对数组进行排序并保持索引关系

$students=array(
	'xiaoming'=>60,
	'lilei'=>80,
	'lihua'=>100,
	'zhangsan'=>90
);
asort($students);
print_r($students);
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

在这里插入图片描述

直接对数组里面的数据进行排序,第二个参数
SORT_REGULAR - 正常比较单元(不改变类型)
SORT_NUMERIC - 单元被作为数字来比较
SORT_STRING - 单元被作为字符串来比较
SORT_LOCALE_STRING - 根据当前的区域(locale)设置来把单元当作字符串比较。
(8)array_filter用回调函数过滤数组中的单元

function odd($var){
	return($var % 2 == 1);
}

function even($var){
	return($var % 2 == 0);
}

$array1 = array("a"=>1, "b"=>2, "c"=>3, "d"=>4, "e"=>5);
$array2 = array(6, 7, 8, 9, 10, 11, 12);

echo "Odd :\n";
print_r(array_filter($array1, "odd"));
echo "Even:\n";
print_r(array_filter($array2, "even"));
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

在这里插入图片描述

所有数组函数

五、字符串处理

1、去除空格或其他字符函数

trim

$str='    abc   ';
var_dump($str);
var_dump(trim($str));//去除左右两边空白

$str='abcabcdefac';
var_dump($str);
var_dump(trim($str,'bac'));//如果要去除多个字符可以连着写


//trim去除两边//ltrim去除左边//rtrim去除右边
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
2、大小写转换函数
$str='test';
var_dump($str);
$str1=strtoupper($str);
var_dump($str);
  • 1
  • 2
  • 3
  • 4
$str='TeSt';
var_dump($str);
var_dump(strtolower($str));
var_dump($str);
  • 1
  • 2
  • 3
  • 4
3、字符串查找函数

1.substr_count统计某字符串出现的次数

$str='testteste';
var_dump(substr_count($str,'te'));//统计某字符串出现的次数,不会计算重叠字符串,如:abcabcabc ->1
  • 1
  • 2
$str='testteste';
var_dump(substr_count($str,'te',1,8));//不能超出字符串,从第二个到第九个查找
  • 1
  • 2

2.strpos查找某字符串首次出现的位置

$str='testteste';
var_dump(strpos($str, 't1'));
if(strpos($str, 't')===false){
	echo '没找到!';
}else{
	echo '找到啦!';
}

$str='testteste';
var_dump(strpos($str, 't',1));//从第二个开始查找
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

3.strstr查找从某字符出现的位置到结尾的字符串

$str='testteste';
var_dump($str);
var_dump(strstr($str,'s'));

var_dump(strstr($str,'s',true));//查找从某字符出现的位置到开始的字符串
  • 1
  • 2
  • 3
  • 4
  • 5
4、字符串替换函数

str_replace

$str='testestab';
var_dump($str);
var_dump(str_replace('t','T',$str));
  • 1
  • 2
  • 3

在这里插入图片描述

$str=array(
	'abc123abc',
	'123abcabc',
	'abcab123c'
);
var_dump($str);
$str1=str_replace(array('1','2','3'),array('一','二','三'),$str,$count);
echo $count;//替换发生的次数
var_dump($str1);
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
5、与html标签相关的函数

1.htmlspecialchars把预定义字符转换成html实体

$str=<<<START
<p style="color:red;font-size:128px;">我去问让他</p>"
START;
echo $str;
echo "\n";
echo htmlspecialchars($str);//把预定义字符转换成html实体
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

在这里插入图片描述

2.strip_tags从字符串中去除HTML和PHP标记

$str=<<<START
<p style="color:red;font-size:128px;">单位确定为取得完全</p>
<div style="color:red;">我的名字</div>
START;
//echo $str;
//echo "\n";
echo strip_tags($str,"<div><p>");
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
6、字符串截取函数

substr

$str='qwzftest';
echo substr($str,3,2);//从第四个开始截,截两个//不填2默认截到结尾

$str='test';
echo substr($str,-3,2);//-3是从结尾开始数到倒数第三个
  • 1
  • 2
  • 3
  • 4
  • 5
7、字符串分隔函数

1.explode

$str='test,test1,test2,test3';
var_dump(explode(',',$str,2));//默认有几个“,”分隔几段。2表示分隔两段
  • 1
  • 2

在这里插入图片描述

2.str_split

$str='test';
var_dump(str_split($str,3));//默认每段一个字符,3表示每段3个字符
  • 1
  • 2
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Gausst松鼠会/article/detail/708244
推荐阅读
相关标签
  

闽ICP备14008679号