PHP语言基础知识(超详细)第一节

. PHP简介:

PHP即“超文本预处理器”,创建于1994年,是一种通用开源脚本语言。PHP是在服务器端执行的脚本语言,与C语言类似,是常用的网站编程语言。PHP独特的语法混合了C、Java、Perl以及 PHP 自创的语法。利于学习,使用广泛,主要适用于Web开发领域。

. PHP的优点:

优点:

(一)快捷性。执行网页速度快。

(二)开放性和可拓展性强。开源,易于扩展附加功能。

(三) 数据库连接的广泛性。可以与很多主流的数据库建立起连接,如MySQL、ODBC、Oracle、IBM DB2等绝大多数数据库。

(四)面向过程和面向对象并用。可以分别使用面向过程和面向对象, 而且可以将PHP面向过程和面向对象两者一起混用,这是其它很多编程语言是做不到的。

(五)支持绝大多数Web服务器,包括:Apache,Microsoft Internet,Information Server PersonalWebServer等。

(六)功能强大,可伸缩性强。

. PHPstudy环境搭建:

PHP常用集成环境软件:Phpstudy, WampServer, Xampp等。我们主要使用Phpstudy。

Phpstudy简介:对于程序员来说,Phpstudy是一个非常好用的PHP调试环境集成包。包含了最新的apache和PHP等程序,对学习PHP的新手来说,windows下环境配置是一件非常困难的事,对老手来说也是一件烦琐的事。所以Phpstudy程序包是很多程序员青睐的工具。

1)下载(略),根据32/64位,点击安装即可。

2)安装完成后页面会有此图标:

3)界面介绍:

在浏览器中输入:localhost:80,即可显示如下界面:

根据上图所示,PHPstudy的根目录是“www”。

.编写第一个PHP应用程序:

4.1 方式:在notepad++里面编写:(注意:由于PHP是html嵌入语言,所以php文件里面可以写HTML代码,但是文件后缀名必须是.php)

(解决中文乱码问题: notepad++中,先设置编码:UTF-8-BOM再编写代码即可)

演示步骤:

(1).保证apache和mysql都启动的情况下: 执行操作(如图)

(2).在里面新建txt文件,命名:demo01.php  (如图)

<html>
	<body>
		<p>
			<?php echo "Hello, 这是我写的第一个php文件"; ?>
		</p>
	</body>
</html>

(4).在phpstudy界面:网站–管理–打开网站–在地址栏输入:localhost/demo01.php   即可显示页面内容。

4.2 方式二:(更推荐)在HBuilder里面编写:

步骤如下: 

(1)打开PHP的根目录:PHPstudy—网站—管理—打开根目录。

(2)新建一个txt文件,命名为“demo02.php”。

(3)HBuilder中创建一个web项目,将demo02.php拖入项目中,选择“创建该文件的链接”,下面打上“√”。

(4)编写“demo02.php”内容如下:

<html>
	<head>
		<meta charset="UTF-8">
		<title>这是第一个PHP文件</title>
	</head>
	<body>
		<p>
			<!--
				1.由于php中是注释html的内容,所以注释与html一样。
				2.注意细节:
					2.1.第一个'?'后面紧接着写'php'
					2.2.echo表示在页面上输出,末尾有';'
					2.3.想要在哪里输出内容,就把<?php echo "......"; ?> 写在哪里。
				3.由于需要web服务器的支持,所以不能直接使用上方浏览器执行。
			-->
			<?php echo "hallo, hallo, 这是在HBuilder里面写的第一个php文件"; ?>
		</p>
	</body>
</html>

特别注意:如果HBuilder中修改php文件名称,在www文件名不会发生变化浏览器访问路径以根目录中的文件名为准。

. PHP嵌入HTML:

我们可以将PHP嵌入到HTML中,嵌入的方法有以下四种:

1.1.PHP默认语法<?php echo “……”; ?>

(注意:当文件后缀名是.html时,不能在里面写php程序

(demo01)将php脚本嵌入到html文件中(demo01.php)

在WWW文件夹中新建一个文件夹“chapter02”,然后在chapter02里面新建demo01.php文件(注意,在页面演示时,路径需要加上chapter02,如:localhost/chapter02/demo01.php)

<html>
	<body>
		<!--1.将php脚本嵌入到html文件中,用于在页面上输出指定内容-->
		<p>
			<?php echo "今天天气不错!"; ?>		
		</p>
		
		<!--2.将html标签嵌入到php脚本中-->
		<?php echo "<p><h1>Tomorrow is sunny too!</h1></p>"; ?>	
		
		<!--3.将Javascript标签嵌入到php脚本中-->
		<?php echo "<script>alert('你好,这是在php中写的Javascript弹框!');</script>"; ?>	
		
	</body>
</html>

1.2.短标记

常见标记有以下三种

<?print “……” ?>

<?= '……'?>

<? echo '……'?>

(注意:如果要启用短标记,需要启用php.ini的short_open_tag = on。)

设置短标记的方法:设置—配置文件—php.ini—php7.3.4nts点击进去,ctrl+f查询‘short’,查看是否默认是on。

另外,后期使用短标记可能会出现XML或XHTML等语法冲突,所以应该尽量避免使用

(demo02):演示php的短标记:

<html>
	<body>
		<!-- 1.php中的段标记:使用‘print’-->
		<?print "你好!谢谢!" ?><br />
		
		<!-- 2.php中的段标记:使用‘=’-->
		<?='我也好,谢谢!!!'?><br />
			
		<!-- 3.php中的段标记:省略‘php’-->
		<? echo '他也好~~~'?>
	</body>
</html>

1.3.嵌入多个代码块:

(注意:在同一个页面中,PHP代码与其他页面元素可以多次交替出现)

(demo03):嵌入多个代码块:

<html>
	<head>		
		<meta charset="UTF-8">
		<title>
			<!--页面标题也可以使用php输出-->
			<?php echo 'demo03_演示php中嵌入多个代码块'; ?>
		</title>
	</head>
	<body>
		<p>
			<!--1.在php中定义变量-->
			<?php
				$name = "张三";
				$age = 20;
				$address = '昆明市盘龙区';
			?>
			
			<!--2.在页面代码中嵌入需要输出的变量-->		
			<p>姓名是:<?php echo $name ?></p>
			<p>年龄是:<?php echo $age ?></p>
			<p>地址是:<?php echo $address ?></p>
		</p>
	</body>
</html>

. PHP的注释:

(一)单行注释: //

(二)多行注释: /*  */

(三)shell语法: #

(demo04):注释if语句演示:

<html>
	<head>
		<meta charset="UTF-8">
		<title><?php echo 'demo05_演示注释和if语句'?></title>
	</head>
	<body>
		<?php
			// 1.单行注释
			/*
				2.多行注释
			 */
			#  3.Shell语法注释
			
			// 定义一个变量
			$age = 20;
			
			# if语句判断,输出不同的结果
			if($age >= 18){
				echo '<h1>你已经成年了~~~</h1>';
			}else{
				echo '<h3>你是未成年人!!!</h3>';
			}
		?>
		
	</body>
</html>

. PHP的输出语句: 

1)echo:不是一个函数,是一个语言结构,表示在页面输出。echo后面接单引号,双引号小括号均可需要注意的是:如果想给echo传递多个参数,就不能使用小括号。

2)var_dump():是调试函数,可以打印变量的值、数据类型及字符数。打印所有的对象,查看对象内部的数据结构。

3) print只能输出一个字符串,所以可以不用圆括号包围参数

4)print_r():打印关于变量的信息,只能分别打印。如果是string,integer,float将打印变量值;如果是数组和对象,将按照一定格式显示键值对。

(demo05):php输出语句:

<html>
	<head>
		<meta charset="UTF-8">
		<title>
			<!--页面标题也可以使用php输出-->
			<?php echo 'demo05_php中的常用输出语句'; ?>
		</title>
	</head>
	<body>
		<?php
			/*
			 1.echo:不是一个函数,是一个语言结构,表示在页面输出。
				echo后面接单引号,双引号,小括号均可。
				需要注意的是:如果想给echo传递多个参数,就不能使用小括号。
			 */
			$arr2= array("a","b","c");
			echo ("Nice to meet you! <br/>");
			echo '你好! <br/>';
			echo "你好!","我好!",'大家好!';  // 如果想给echo传递多个参数,就不能使用小括号。
			echo $arr2;	// echo不适合输出数组,因为输出结果是Array
			echo true;	// echo不适合输出布尔值,因为输出true的结果是'1';
			echo false;	// echo不适合输出布尔值,因为输出false没有结果。
			
			// 2.var_dump():是调试函数,可以打印所有的对象,查看对象内部的数据结构。
			// 定义两个变量
			$a = 100;
			$b = "Thanks";
//			var_dump($a);
//			var_dump($a,$b);
			
			// 3.print只能输出一个字符串,所以可以不用圆括号包围参数。
//			print $a;
//			print $b;
			
			// 4.print_r():打印关于变量的信息。如果是数组和对象,将按照一定格式显示键值对
//			print_r($a, $b); // 不能放在一起打印,只能分别打印
//			print_r($a);
//			print_r($b);
		
			
			// 5.数组的输出:
			// 5.1.基本结构的数组:
//			print $arr2;   // 使用print只能输出数组的类型:Array
//			print '<br/>';
			
//			print_r($arr2); // Array ( [0] => a [1] => b [2] => c )
//			print '<br/>'; 
			
//			var_dump($arr2); // array(3) { [0]=> string(1) "a" [1]=> string(1) "b" [2]=> string(1) "c" } 
//			print '<br/>';
			
			// 5.2.数组内嵌套数组:
			// "c"是一个数组:使用键值对的形式,而不是使用默认索引
//			$arr=array("a"=>"张三","b"=>"李四","c"=>array("王大五","王二五","王三五"));
//			print_r($arr);
		?> 
	</body>
</html>

. if语句:(例:demo01)

格式1:if(表达式)

语句;  // 没有花括号时,只能执行一条语句。(同样适用于if-else等语句)

格式2:if(表达式){

语句1;  // 有花括号时,可以执行多条语句。(同样适用于if-else等语句)

语句2;

……

}

例如:demo01:根据用户输入的手机号长度,判断号码格式是否正确。

<!DOCTYPE html>
<html>
	<head>		
		<meta charset="utf-8" />
		<title>demo01_if-else判断用户输入的手机号码格式是否正确</title>
	</head>
	<body>
		<form action="demo01.php" method="post">
			<input placeholder="请输入手机号" type="number" name="telephone" /><br />
			<input type="submit" value="提交" />
		</form>
		
		<?php
			// 判断提交方式:
			if($_POST){
				// 获取用POST方式提交的: name属性:telephone。注意:使用[]
				$tel = $_POST["telephone"]; 
				
				// 判断输入的用户名和密码是否正确
				if(strlen($tel) == 11){
					echo "<span style='color: green;'>手机格式正确</span>";
				}else{
					echo "<span style='color: red;'>手机格式错误,请核对!</span>";
				}
			}
		?>
	</body>
</html>

. if-else语句: (例:demo02)

1)只有一个语句的时候,可以使用如下形式:(可以不用“{}”)

if(表达式)

语句1;

else(表达式)

语句2;

2)有多个语句的时候,必须使用“{}”

if(表达式){

语句1;

语句2;

}

else(表达式){

语句3;

语句4;

}

例如:demo02:判断用户名和密码是否正确。

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8" />
		<title>demo02_if-else判断用户名和密码是否正确</title>
	</head>
	<body>
		<form action="demo02.php" method="post">
			<input placeholder="请输入用户名" type="text" name="username" /><br />
			<input placeholder="请输入密码" type="password" name="password" /><br />
			<input type="submit" value="提交" />
		</form>
		
		<?php
			// 判断提交方式:
			if($_POST){
				// 设置初始的用户名和密码
				$usn = "zhangsan"; 
				$pwd = "123456";
				// 获取用POST方式提交的: 输入的用户名、密码、验证码。注意:使用[]
				$username = $_POST["username"]; 
				$password = $_POST["password"];
				// 判断输入的用户名和密码是否正确
				if($usn==$username && $pwd==$password){
					echo "登录成功!欢迎您:".$username;
				}else{
					echo "用户名密码或验证码输入错误!!!";
				}
			}
		?>
	</body>
</html>

. switch语句: (例:demo03)

switch语句的一般形式:

switch(表达式){

case 常量表达式1:

语句1;

break;

case 常量表达式2:

语句2;

break;

……

default:

语句n;

break;

}

例如:demo03:switch语句判断用户星级评价。

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title>demo03_switch语句判断用户星级评价</title>
	</head>
	<body>
		<h2>根据用户选择的星级判断</h2>
		<form action="demo03.php" method="post">
			<input placeholder="请为用户打分" type="number" name="score" />星
			<input type="submit" value="提交" />
		</form>
		<?php
			if($_POST){
				$star = $_POST["score"];
				// echo "$star";
				switch($star){
					case '1':
						echo "1星评价,非常差";
						break;
					case '2':
						echo "2星评价,较差";
						break;
					case '3':
						echo "3星评价,及格";
						break;
					case '4':
						echo "4星评价,较好";
						break;
					case '5':
						echo "5星评价,非常优秀";
						break;
					default:
						echo "评分有误";
						break;
				}
			}
		?>
	</body>
</html>

十一. for循环语句: (例:demo04)

for循环的一般形式:

for(表达式1; 表达式2; 表达式3;){

循环体;

}

如果循环体不只有一句,必须加上{},默认都加上比较好。

例如:demo04:for循环输出9*9乘法表。

<?php
	// 1.循环输出1-10的数(使用"."拼接换行符)
	for($i=1; $i<=10; $i++){
		echo $i."<br/>";
	}
	
	// 2.使用for循环输出9*9乘法表
	// 	表示制表符(空格)
	for($i=0; $i<10; $i++){
		for($j=1; $j<=$i; $j++){
			echo $j."*".$i."=".$i*$j."	";			
		}
		echo "<br/>";
	}
?>

十二. foreach循环语句: (例:demo05)

foreach只能在PHP4以上的版本使用。有以下两种形式:

1)as后的$value是自定义的一个变量

foreach(数组表达式 as $value){

循环体;

}

2)as后的$key和$value是自定义的变量,他们是一组键值对

foreach(数组表达式 as $key => $value){

循环体;

}

补充:echo, print(),print_r()的区别:

echo : 输出一个或多个字符串。因为不是函数,所以没有返回值。不能通过数组名或对象名输出完整的数组和对象数据,只能通过遍历。

print : 只能输出简单变量的值,如int,string类型变量的值。不能通过数组名或对象名输出完整的数组和对象数据,只能通过遍历。

print_r : 可以输出简单类型和复杂类型的值,如数组,对象。可以通过数组名或对象名输出完整的数组和对象数据。

例如:demo05:foreach循环输出数组:

<?php
	// 1.定义一个数组:
	$arr = array("张三","李四","王五","赵六");
	//echo $arr[2];  // 只能输出'王五'一个人。
	//echo ($arr);  // Array
	//print($arr);	// Array
	//print_r($arr);	// 能够输出完整的数组数据
	
	// 2.使用foreach循环遍历输出数组的元素
	// 2.1 方式一:
	//foreach($arr as $value){		
		//echo($value."<br/>");
		//print($value."<br/>");
		//print_r($value."<br/>");
	//}
	
	// 2.2 方式二:
	foreach($arr as $key=>$value){		
		//echo($key."----".$value."<br/>");
		//print($key."----".$value."<br/>");
		print_r($key."----".$value."<br/>");
	}
?>

十三. while,do-while循环语句: (例:demo06)

1)while循环的格式:

while(布尔表达式){

语句块;

}

2)do-while循环的格式:(至少执行一次)

do{

语句块;

}while(布尔表达式)

例如:demo06:while与do-while循环输出数组:

<?php
	// 1.while循环:
	// 1.1.定义一个0-10之间的随机整数:
	$num = rand(0,10);
	// 1.2.判断随机数是否小于等于5,如果是,就继续随机
	/*while($num <= 5){
		echo $num."<br/>";	// 输出获取的随机数
		$num = rand(0,10);	
	}
	echo "我终于及格了,分数是:".$num;*/
	
	
	// 2.do-while循环:
	// 如果使用while,当条件不满足时,一次都不会执行。
	/*while($num >= 20){
		echo $num;		
	}*/
	
	// do-while至少执行一次
	do{
		echo $num;
	}while($num >= 20);
	
?>

十四. break与continue: (例:demo07)

1)break结束循环。

2)continue跳过本次循环,继续执行下一次循环。

例如:demo07:break与continue的区别:

<?php
	for($i=0; $i<10; $i++){
		if($i == 5){
			/*echo "遇到5,结束循环";
			break;*/
			
			echo "遇到5,跳过本次循环"."<br/>";
			continue;
		}
		echo $i."<br/>";
	}
?>

十五. 函数的相关概念:

1)函数的定义:一个独立的子程序,能实现一定的功能。能重复使用。

2)函数的分类:

(1)系统定义的标准函数,也称内置函数(PHP发行包中有1000多个标准函数),如:rand (), pow()。

(2)用户自定义的函数。

注意:有些系统函数需要手动开启扩展支持。

十六. 函数的调用与定义:(例:demo01)

(1)多数标准函数可以直接使用,如:

$num = pow(9,3);

echo $num;   或者  echo pow(9,3);

(2)自定义函数的格式:

function 函数名(//参数){

函数体;

// return 返回值;

}

例如:demo01:函数的定义和使用:

<?php
	// 1.调用一个函数,输出9的3次方:
	//$num = pow(9,3);
	//print($num);
	//echo pow(8,3)."<br/>";
	//echo rand(0,100)."<br/>";
	
	// 2.自定义函数:求出两个数的积
	// 2.1.无返回值
	function show01($a, $b){
		print($a*$b."<br/>");
	}
	show01(6.1, 8);
	
	// 2.2.有返回值
	function show02($a, $b){
		return $a*$b;
	}
	// 调用函数,需要得到一个返回值(东西),后续会使用这个返回值
	$result = show02(9,6);
	
	// 使用上面得到的返回值
	if($result >=100){
		print("结果大于100");
	}else{
		print("结果小于100");
	}
?>

十七. 函数的参数及返回值:

参数:

1)按值传递参数:(略,详见demo01)

2)按引用传递参数:(例:demo02)

3)按默认值传递参数:

返回值:分为单个返回值和多个返回值:(例:demo03)

例如:demo02:函数的参数传递

<?php
	
	// 要求:定义一种方法,计算某一类商品的成本价格
	// 出厂价100元,税率17%,利润20%     
	// 成本价格 = 出厂价 + 出厂价*(税率+利润)
	
	// 1.按引用传递参数:
	// 设置两个参数:
	$price = 100; $tax = 0.17; $profit = 0.2;
	
	// 定义函数
	function show(&$price, $tax, $profit){
		$price = $price + $price*($tax+$profit);
		return $price;
	}
	echo show($price, $tax, $profit)."<br/>";	// 一级经销商的成本价
	echo show($price, $tax, $profit)."<br/>";	// 二级经销商的成本价
	echo show($price, $tax, $profit)."<br/>";	// 三级经销商的成本价
	
	
	// 2.使用默认参数:税率17%和利润20%设置成默认值
//	$price = 100;
//	function show(&$price, $tax=0.17, $profit=0.15){
//		$price += $price*($tax+$profit);
//		return $price;
//	}
//	echo show($price)."<br/>";	// 一级经销商的成本价
//	echo show($price)."<br/>";	// 二级经销商的成本价
//	echo show($price)."<br/>";	// 三级经销商的成本价
?>

例如:demo03:函数的多个返回值情况

<?php
	// 多个返回值的情况:
	// 定义一个函数,返回随机生成的3个0-10的整数
	function getNums(){
		$arr[0] = rand(0,10);  // 定义一个数组,用于存储产生的随机数
		$arr[1] = rand(0,10);
		$arr[2] = rand(0,10);
		return $arr;
	}
	print_r(getNums());
	
?>

十八. 变量函数:

如果一个变量名后面有(),程序会自动寻找与之同名的函数。变量函数只能自己单独使用,不能与其他语言结构混合,如:echo(),include()等。(例:demo04)

例如:demo04:变量函数

<?php
	// 变量函数:
	// 如果一个变量名后面有(),程序会自动寻找与之同名的函数。
	function show(){
		print("我是show()函数");
	}
	
	$add = "show";  // 定义变量add,其值是'show'字符串
	$add();
	echo "<br/>";
	echo $add;
?>

十九. PHP的工具函数 (例:demo05:演示exit(),isset(),is_numeric())

1)exit()或die()   结束程序并执行输出参数。

2)empty()   判断是否为0或者空值,如果是就返回true,否则返回false。

3)isset()   如果变量已经设定值就返回true,否则返回false。

4)unset()   将已有变量的值删除,让其变成未定义undefined。

5)eval()    将字符串当做代码执行。

6)is_bool() 判断变量的数据类型是否为boolean值。

6)is_array() 判断是否为数组。

6)is_numeric() 判断变量的是否为数字或数字字符串。

6)in_array() 判断变量是否存在于数组中。

例如:demo05:工具函数:演示exit(),isset(),is_numeric()

<?php
	// 1.exit()或die()   结束程序并执行输出参数
	// 格式演示,不会显示内容
	//mysql_connect("localhost","root","root","数据库名") or exit("连接失败"); 
	
	// 2.isset()   如果变量已经设定值就返回true,否则返回false
	$a = 10;
	if(isset($a)){
		echo "变量已经赋值<br/>";
	}else{
		echo "变量没有被赋值<br/>";
	}
	
	// 3.is_numeric()
	$b = "20";
	echo is_numeric($a)."<br/>";
	echo is_numeric($b)."<br/>";
?>

二十. 数学函数 (例:demo06)

1)rand() 返回指定范围内的随机整数

2)ceil() 向上取整    floor()向下取整    

3)abs()取绝对值   round()四舍五入

4)max()求最大值   min()求最小值

5)decbin()十进制转二进制  

6)dechex()十进制转十六进制   

7)decoct()十进制转八进制

例如:demo06:数学函数:

<?php
/*
	1)rand() 返回指定范围内的随机整数
	2)ceil() 向上取整    floor()向下取整    
	3)abs()取绝对值   round()四舍五入
	4)max()求最大值	  min()求最小值
	5)decbin()十进制转二进制  
	6)dechex()十进制转十六进制   
	7)decoct()十进制转八进制
*/
	echo rand(0,200)."<br/>";
	echo ceil(17.678)."<br/>";
	echo floor(20.999)."<br/>";
	echo abs(-12.5)."<br/>";
	echo round(5.5001)."<br/>";
	echo max(15, 60, -1, 200)."<br/>";
	echo min(15, 60)."<br/>";
	
	echo decbin(10)."<br/>";
	echo dechex(10)."<br/>";  	// 0~9 a~f
	echo decoct(10)."<br/>";
		
?>

二十一. 时间和日期函数 (例:demo07)

1)date() 格式化本地时间/日期

2)getdate() 取得日期/时间信息,分析出年月日等信息

3)gettimeofday()取得当前时间(显示毫秒值)

4)gmdate()格式化一个GMT/UTC日期和时间(格林尼治时间)

5)checkdate()验证时间是否有效

例如:demo07:时间和日期函数:

<?php
/*
	1)date() 格式化本地时间/日期
	2)getdate() 取得日期/时间信息,分析出年月日等信息
	3)gettimeofday()取得当前时间(显示毫秒值)
	4)gmdate()格式化一个GMT/UTC日期和时间(格林尼治时间)
	5)checkdate()验证时间是否有效
*/
	echo date("Y-m-d")."<br/>";
	echo date("Y-m-d h:i:s")."<br/>";
	echo gmdate("Y-m-d h:i:s")."<br/>";		// 格林尼治时间
	print_r(gettimeofday("Y-m-d h:i:s"));  	// 显示毫秒值
?>

二十二. 字符串处理函数 (例:demo08:演示常用方法)

1)join, implode 将数组元素合并为字符串

2)htmlentities, htmlspecialchars 将HTML特殊字符转换为HTML标记形式

3)str_split 将字符串分割到数组中,可以设置每次截取的长度

4)strstr 查找一个字符串是否在另一个字符串中

5)trim, ltrim, rtrim 去掉字符串的左右空格  (left  right)

6)explode 使用一个字符串分割另一个字符串,返回一个数组

7)count_chars 返回字符串所用字符的信息

8)strops 查找特定字符串在源字符串中的位置

9)strlen 获取字符串的长度  

10)substr(字符串,开始的索引,长度) 截取字符串

例如:demo08:字符串处理函数:

<?php
/*
	1)join, implode 将数组元素合并为字符串
	2)htmlentities, htmlspecialchars 将HTML特殊字符转换为HTML标记形式
	3)str_split 将字符串分割到数组中
	4)strstr 查找一个字符串是否在另一个字符串中
	5)trim, ltrim, rtrim 去掉字符串的左右空格
	6)explode 使用一个字符串分割另一个字符串,返回一个数组
	7)count_chars 返回字符串所用字符的信息
	8)strops 查找特定字符串在源字符串中的位置
	9)strlen 获取字符串的长度
	10)substr(字符串,开始的索引,长度) 截取字符串
*/


	// 1)join, implode 将数组元素合并为字符串
	//$arr = array("中国","云南省","昆明市","盘龙区");
	//echo join("",$arr)."<br/>";
	//echo implode("--",$arr);
	
	// 3)str_split 将字符串分割到数组中
	$address = str_split("helloWorld");   // 不能分割汉字,每个汉字3个字符。
	print_r($address);
	$address02 = str_split("helloWorld",2);  // 数字表示每次分割的长度
	print_r($address02);
	
	// 4)strstr 查找一个字符串是否在另一个字符串中。
	// 如果存在,就返回从该字符串开始,直到源字符串结束的值。(类似于截取字符串)
	echo strstr("abcdefg","cd")."<br/>";
	echo strstr("abcdefg","e");
	
	// 6)explode 使用一个字符串分割另一个字符串,返回一个数组
	$str = "我来自-云南省-昆明市";
	print_r(explode("-",$str));
	
	// 9)strlen 获取字符串的长度
	$school = "云南林业职业技术学院";
	$school = "yunnan123";
	print(strlen($school));

	// 10)substr(字符串,开始的索引,长度) 截取字符串
	print(substr("abcdefghijklmn", 5, 3));
?>

二十三. 数组的理解:(例:demo01)

PHP中的数组可以属于不同类型。每个数组实体包含两个项:键key和值value。可以通过查询键来获取相应的值。键与值没有真正的联系,只是表示某个值在数组中的位置。使用数组的索引,可以获取对应位置的值。如果不写关联的键,默认以索引作为键。如果里面的元素又需要包含多个值,可以使用二维数组或者多维数组。

例如:

数组的基本格式:$arr = array(0=>“张三”, 1=>“李四”,2=>“王五”);

获取数组的值:$arr[0]……

例如:demo01:

<?php
	// 1.没有关联键的数组:
	//$arr01 = array("昆明","曲靖","弥勒","大理");
	//print_r($arr01);
	//echo "<br/>";
	
	// 2.有关联键的数组:
	//$arr02 = array("KM"=>"昆明","QJ"=>"曲靖","ML"=>"弥勒","DL"=>"大理");
	//print_r($arr02);
		
	// 3.二维数组
	$arr03 = array(
		"昆明"=>array("官渡区","盘龙区","西山区"),
		"曲靖"=>array("A区","B区","C区"),
		"弥勒"=>array("D区","E区","F区"),
		"大理"=>array("G区","H区","I区")
		);
	print_r($arr03);
?>

二十四. 数组的创建:(例:demo02)

1)指定索引创建:$arr[0] = “张三”; $arr[1] = “李四”;

2)不写索引创建:$arr[] = “张三”; $arr[] = “李四”;

3)关联键的写法:$arr[“zs”] = “张三”; $arr[“ls”] = “李四”;

4)通过array进行创建:

$arr = array(“张三”, “李四”,“王五”);

或者: $arr = array(0=>“张三”, 1=>“李四”,2=>“王五”);

5)使用range()方法快速创建数组。

可以定义数字,字母等与ASCII编码相关的数组。

格式:array range(low, high, [step]);  

low:起始, high:终点, step:间隔

Eg: $nums = range(1,5);  // $nums = array(1,2,3,4,5);

   $nums = range(0,10,2);  // $nums = array(0,2,4,6,8,10);

$letters = range(A,G);

例如:demo02:

<?php
	// 使用range()方法创建数组:
	// 1.默认排序方式:
	//$num01 = range(5,10);
	//print_r($num01);
	//echo "<br/>";
	
	// 2.间隔方式:
	//$num02 = range(10,1,3);
	//print_r($num02);
	//echo "<br/><br/>";
	
	// 3.默认排序方式,创建字母数组:
	//$arr01 = range("a","h");
	//print_r($arr01);
	//echo "<br/>";
	
	// 4.间隔方式,创建字母数组:
	//$arr02 = range("A","J",3);
	//print_r($arr02);
	
	// 课堂练习:0-10000之间能被179整除的数,倒叙排列,并遍历出来
	// array_reverse(数组名) :将数组的元素倒叙排列。
	$num = range(0,10000,179);
	$num01 = array_reverse($num);
	foreach($num01 as $key=>$val){
		print($key."---".$val."<br/>");
	}
?>

二十五. 数组元素的添加和删除:(注意:添加时不能使用关联键)

1)(例:demo03)

array_unshift():在数组头部添加元素。已有的数值键会相应修改,但是关联键不受影响。

array_shift():删除并返回数组中对应的元素(默认是第一个元素)。如果是数值键,则所有相应的值都会下移,但是关联键不受影响。

例如:demo03:

<?php
	// 无关联键的数组:
	$stu = array("周星驰","谢霆锋","刘德华");
	print_r($stu);
	echo "<br/>";
	
	// 1.array_unshift():在数组头部添加元素。
	array_unshift($stu, "鹿晗");
	print_r($stu);
	
	// 2.array_shift():删除并返回数组中对应的元素(默认是第一个元素)。
	array_shift($stu);
	array_shift($stu);
	print_r($stu);
	
	// 有关联键的数组:
	/*$stu = array("zxc"=>"周星驰","xtf"=>"谢霆锋","ldh"=>"刘德华");
	print_r($stu);
	echo "<br/>";
	
	// 3.array_unshift():在数组头部添加元素。
	array_unshift($stu, "鹿晗");
	print_r($stu);
	
	// 4.array_shift():删除并返回数组中对应的元素(默认是第一个元素)。
	array_shift($stu);
	array_shift($stu);
	print_r($stu);
	*/
?>

2)(例:demo04)

array_push():将元素添加到数组的末尾。成功就返回true,失败返回false。可以一次性添加多个元素。

array_pop():删除并返回数组的最后一个元素。

例如:demo04:

<?php
	// 无关联键的数组:
	$stu = array("周星驰","谢霆锋","刘德华");
	print_r($stu);
	echo "<br/>";
	
	// 1.array_push():将元素添加到数组的末尾。
	array_push($stu, "迪丽热巴");
	print_r($stu);
	
	// 2.array_pop():删除并返回数组的最后一个元素。
	array_pop($stu);
	print_r($stu);
	
	// 有关联键的数组:
	//$stu = array("zxc"=>"周星驰","xtf"=>"谢霆锋","ldh"=>"刘德华");
	//print_r($stu);
	//echo "<br/>";
	
	// 3.array_push():将元素添加到数组的末尾。
	//array_push($stu, "迪丽热巴");
	//print_r($stu);
	
	// 4.array_pop():删除并返回数组的最后一个元素。
	//array_pop($stu);
	//print_r($stu);
?>

二十六. 定位数组元素

1)搜索数组元素(例:demo05)  注意:此三种方法只会返回true或false

in_array():在数组中搜索一个特定的值。  

格式:in_array(“搜索的值”,数组名)

array_key_exists():在数组中搜索一个指定的键。

格式:array_key_exists(“搜索的键”,数组名)

array_search():在数组中搜索一个特定的值。(与in_array()类似)

格式:array_search(“搜索的值”,数组名)

例如:demo05:

<?php
	// 1.in_array():在数组中搜索一个特定的值。
	$city = array("北京","上海","广州");
	$flag = in_array("上海66",$city);
	echo $flag;
	if($flag){
		echo "你所搜索的值存在";
	}else{
		echo "你所搜索的值不存在";
	}
	
	// 2.array_key_exists():在数组中搜索一个指定的键。
	$city = array("bj"=>"北京","sh"=>"上海","gz"=>"广州");
	$flag = array_key_exists("gzz",$city);
	if($flag){
		echo "你所搜索的键存在";
	}else{
		echo "你所搜索的键不存在";
	}
	
	// 3.array_search():在数组中搜索一个特定的值。
	/*$city = array("bj"=>"北京","sh"=>"上海","gz"=>"广州");
	$flag = array_search("北京",$city);
	if($flag){
		echo "你所搜索的键存在";
	}else{
		echo "你所搜索的键不存在";
	}*/
?>

2)获取数组多个键:(例:demo06)

array_keys():返回一个数组,里面包含所搜索数组中的所有键。

3)获取数组多个值:

array_values():返回一个数组,里面包含所搜索数组中的所有值,并自动提供索引。

例如:demo06:

<?php
	$city = array("bj"=>"北京","sh"=>"上海","gz"=>"广州");
	
	// 1.array_keys():返回一个数组,里面包含所搜索数组中的所有键。
	$cityKeys = array_keys($city);
	print_r($cityKeys);
	echo "<br/>";
	
	// 2.array_values():返回一个数组,里面包含所搜索数组中的所有值,并自动提供索引
	$cityValues = array_values($city);
	print_r($cityValues);
?>

© 版权声明
THE END
如果内容对您有所帮助,就支持一下吧!
点赞0 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容