PHP基础(五) 学习笔记
目录
一、字符串
1、定义
使用单引号或双引号括起来的0个或多个字符串。
单引号
不能解析变量的值,能被转义的有 \\ \'
双引号
能解析变量的值,所有字符都能被转义
heredoc 其本质就是使用双引号定义大段的文本,只是以另一种方式进行书写
nowdoc 其本质就是使用单引号定义大段的文本,只是以另一种方式进行书写
[code]<?php /* * 字符串 */ $str = 'asdasd'; $heredoc = <<<abc " Hello World " abc; echo $heredoc,'<br />'; $nowdoc = <<<'abc' hello abc; echo $nowdoc,'<br />';
2、字符串长度
①、strlen()
语法:
strlen(变量)
说明:
用于获取一个字符串变量的字节数
[code]<?php /* * 字符串 */ $str = 'asdad'; echo strlen($str);
②、多字节字符的支持
mb_strlen(变量,存储字符编码) 获得一个字符串的字符个数
[code]<?php /* * 字符串 */ $str = 'asd撒旦ad'; echo strlen($str),'<br />';//11 echo mb_strlen($str,'utf-8');//7
3、字符串相关函数
①、查找&截取
strpos(str,substr [,
int $offset= 0 ]) 用于在字符串str中查找子字符串substr首次出现的位置
strrpos(str,substr [,int
$offset= 0]) 用于在字符串str中查找子字符串substr末次出现的位置
strstr(str,substr) 用于在字符串str中查找并截取子字符串substr首次出现的位置
strrchr(str,substr) 用于在字符串str中查找并截取子字符串substr末次出现的位置
[code]<?php /* * 字符串 */ $str = 'http://www.baidu.com/hello'; echo strpos($str,'/'),'<br />'; echo strrpos($str,'/'),'<br />'; echo strstr($str,'/'),'<br/>'; echo strrchr($str,'/'),'<br />';
②、分割
explode(分割符,str)
说明:
根据指定的分割符,将字符串str进行分割,并保存在数组中返回
[code]<?php /* * 字符串 */ $str = "星期一,星期二,星期三,星期四,星期五"; $array = explode(',',$str); echo '<pre>'; print_r($array);
③、替换
str_replace(search,rep,str);
说明:
在字符串str中查找search表示的部分,并替换为rep代表的内容
[code]<?php /* * 字符串 */ $str = "星期一,星期二,星期三,星期四,星期五"; echo str_replace(',','/',$str);
④、大小写转换
strtolower(str) 将字符串全转换成小写
strtoupper(str) 将字符串全转换成大写
[code]<?php /* * 字符串 */ $str = "Hello ,World"; echo strtolower($str),'<br />'; echo strtoupper($str),'<br />';
⑤、去除指定字符
trim(str [,substr]) 除字符串首尾处的空白字符(或者其他字符)
[code]<?php /* * 字符串 */ $str = " Hello,World! "; $str2 = "aaHello,World!aa"; echo trim($str),'<br />'; echo trim($str2,'aa'),'<br />';
⑥、pathinfo
语法:
pathinfo(path,[,option]);
23ff8说明:
用于获取一个文件的路径信息(文件名,文件夹,扩展名)
option 参数用于获取路径信息中指定的部分。
[code]<?php /* * 字符串 */ $str = "D:\wamp64\www\lgz\index.php"; echo '<pre>'; $info = pathinfo($str); print_r($info); echo '<br />'; echo pathinfo($str,PATHINFO_BASENAME),'<br/>'; echo pathinfo($str,PATHINFO_DIRNAME),'<br/>'; //...
⑦、md5()
语法:
md5(str)
说明:
用于对字符串str进行md5加密。对任何长度的字符串进行md5加密得到的都是32为长度的字符串;
[code]<?php /* * 字符串 */ $pwd = '123'; echo md5($pwd),'<br/>';
⑧、htmlspecialchars
语法:
htmlspecialchars(str);
说明:
将特殊字符转换为 HTML 实体
字符 | 替换后 |
---|---|
& (& 符号) | & |
" (双引号) | ",除非设置了 ENT_NOQUOTES |
' (单引号) | 设置了 ENT_QUOTES后, ' (如果是 ENT_HTML401) ,或者 ' (如果是 ENT_XML1、 ENT_XHTML或 ENT_HTML5)。 |
< (小于) | < |
> (大于) | > |
[code]<?php /* * 字符串 */ $img = "<img src='public/123.jpg'/>"; echo $img,'<br />'; $img = htmlspecialchars($img); echo $img,'<br />';
二、数组
1、概念
数组是一种数据的集合
数组主要是于存储具有行列特征的数据
2、php数组的分类
①、索引数组
数组的下标是整数
②、关联数组
数组的下标是字符串
3、php数组的创建
①、索引数组的创建
[code]<?php /* * 数组 */ //显示创建 $array = [10,20,30,40]; $array2 = array(10,20,30,40); //隐式创建 $array3 = array(); $array3[0] = 10; $array3[4] = 30; $array3[6] = 40; $array3[9] = 60; echo '<pre>'; print_r($array); echo '<br/>'; print_r($array2); echo '<br/>'; print_r($array3);
说明:在php中的下标可以不连续
②、关联数组的创建
语法:
$arr = array(键名=>键值,键名=>键值...);
$arr = [键名=>键值,键名=>键值...];
[code]<?php /* * 数组 */ //显示创建 $arr = array('name'=> 'lgz','pwd'=>'123456'); $arr2 = ['name'=>'Y','age'=>'21']; //隐式创建 $arr3 = array(); $arr3['name']='L'; $arr3['id']='007'; $arr3['tel']='139xxxxxxxx'; echo '<pre>'; print_r($arr); echo '<br/>'; print_r($arr2); echo '<br/>'; print_r($arr3);
4、多维数组
一个数组中的元素又包函数组元素,则这个数组就称为多维数组
[code]<?php /* * 数组 */ //显示创建 $arr = array( 'goods'=>array('id'=>'1','price'=>'100'), 'goods2'=>array('id'=>'2','price'=>'100'), 'goods3'=>array('id'=>'3','price'=>'100'), 'goods4'=>array('id'=>'4','price'=>'100') ); echo '<pre>'; print_r($arr);
5、数组元素的访问
①、一维数组元素的访问
语法:
$数组名[下标/键名];
②、二维数组元素的访问
语法:
$数组名[第一维度下标/键名][第二维度下标/键名];
[code]<?php /* * 数组 */ //显示创建 $arr = array( 'goods'=>array('id'=>'1','price'=>'100'), 'goods2'=>array('id'=>'2','price'=>'100'), 'goods3'=>array('id'=>'3','price'=>'100'), 'goods4'=>array('id'=>'4','price'=>'100') ); echo '<pre>'; print_r($arr['goods']); echo '<br/>'; echo $arr['goods3']['price'];
6、数组的长度
count()
用于获取数组的长度
[code]<?php /* * 数组 */ //显示创建 $arr = [10,20,30,40]; echo count($arr),'<br />';
三、数组的指针
数组指针用于表示当前所关注的元素
crrent($arr) 用于获取当前指针所指向的元素的键值
key($arr) 用于获取当前指针所指向的元素的键名
next($arr) 用于将数组的指针下移
prev($arr) 用于将数组的指针下移
reset($arr) 用于将数组的指针重置(归位,数组的指针默认位于第1个元素)
end($arr) 用于将数组的指针移动到最后一个元素
四、数组的遍历
1、for循环
只能遍历下标连续或有规律的索引数组。
[code]<?php /* * 数组 */ //显示创建 $arr = [10,20,30,40]; for($i=0;$i<count($arr);$i++){ echo $arr[$i],'<br />'; }
2、foreach
语法:foreach($arr as $key => $value); $arr是要遍历的数组名,$key和$value 的变量名可自定义,
所处位置对应数组中元素的键名和键值
[code]<?php /* * 数组 */ //显示创建 $arr = [10,20,30,40]; $arr2 = ['id'=>'07','name'=>'lgz']; foreach ($arr2 as $key => $value){ echo $key,'->',$value,'<br/>'; }
原理:
首先对数组的指针进行重置
读取当前指针所指向的数组元素,并将元素的键名赋值给变量$key,将键值赋给变量$valeu;
同时将数组的指针下移一行
foreach由系统控制循环次数,自动判断循环结束。
3、while-each-list遍历 (了解)
使用while循环,及each(),list语法结构联合来遍历数组
①、each() //在php7.2.0被废除
说明:
用于获取当前指针所指向的元素键名与键值,并以索引元素与关系元素两种形式来表示,同时将指针下移一行
[code]<?php /* * each */ $arr = ['one'=>10,'two'=>20,'three'=>30,'four'=>40,'five'=>50]; echo '<pre>'; $item = each($arr); print_r($item); $item = each($arr); print_r($item); $item = each($arr); print_r($item); $item = each($arr); print_r($item); $item = each($arr); print_r($item); $item = each($arr);//没有元素可以读取,返回false不输出 print_r($item); var_dump($item);
②、list
语法:
list(变量列表)=$arr
说明:
将数组$arr中的索引元素赋值给变量列表中的变量
示例:
[code]<?php /* * list */ $item = array( '1'=>30, 'value'=>30, 'key'=>'id', '0'=>'id', ); list($k,$v)=$item; echo $k,' ',$v,'<br/>';
③、while-each-list遍历
[code]<?php /* * list */ $item = array( 'id'=>'007', 'name'=>'lgz', 'sex'=>'man', 'age'=>22, ); while(list($k,$v) = each($item)){ echo $k,' ',$v,'<br/>'; if(!$k){ break; } }
五、数组操作常用函数
1、获取数组的长度
count($arr)
2、获取数组元素的键名和键值
①、array_keys(arr); 获取数组元素所有的键名
②、array_values(arr); 获取数组元素所有的键值
3、获取数组元素的键名和键值
①、array_key_exists(key,arr); 用于判断某个键名是否存在于数组中
②、in_array(value,arr); 用于判断某个键值是否存在于数组中
[code]<?php /* * list */ $item = array( 'id'=>'007','name'=>'lgz','sex'=>'man','age'=>22 ); var_dump(array_key_exists('name',$item)); var_dump(in_array('lgz',$item));
4、数组合并
array_merge(arr1,arr2)
注:若两个数组是关联型数组,且拥有相同的键,则后者会更新前者
[code]<?php /* * list */ $item = array( 'id'=>'007','name'=>'lgz','sex'=>'man','age'=>22 ); $a = array( 'name'=>'Tom','height'=>175,'weight'=>'90' ); $return = array_merge($item,$a); echo "<pre>"; print_r($return);
5、数组的排序
①、sort() 按键值对数组进行升序排序
②、rsort() 按键值对数组进行降序排序
③、asort() 按键值对数组进行升序排序,但索引关系不变
④、arsort() 按键值对数组进行降序排序,但索引关系不变
④、ksort()、kasort() 按键名进行排序
⑥、usort()、uksort(),uasort() 用户自定义排序 usort(arr,callable);
[code]<?php /* * array */ $arr = [1,28,15,88,21,120,8]; sort($arr);//按键值进行数组升序排序 echo '<pre>'; print_r($arr); echo '<br/>'; rsort($arr);//按键值进行数组降序排序 print_r($arr); echo '<br/>'; asort($arr);//保持索引关系按键值进行数组升序排序 print_r($arr); echo '<br/>'; arsort($arr);//保持索引关系按键值进行数组降序排序 print_r($arr);
6、extract
用于解压数组,将关联元素转换为以键名为变量名的变量(若转换不成功则不转换,例如键名不符合变量命名规则)
[code]<?php /* * list */ $item = array( 'id'=>'007','name'=>'lgz','sex'=>'man','age'=>22 ); extract($item); echo $id,'<br/>'; echo $name,'<br/>'; echo $sex,'<br/>'; echo $age,'<br/>';
- PHP 学习笔记(一):基础教程:语法,变量,函数,数组,超全局
- PHP学习笔记【1】_基础
- 学习笔记---零基础精通PHP+MySQL网络编程课程1
- PHP基础学习笔记
- php基础教程之学习笔记1
- PHP基础知识学习笔记
- PHP 学习笔记(二)基础语法
- php学习笔记--php基础
- 学习笔记---零基础精通PHP+MySQL网络编程课程2
- PHP学习笔记-PHP语言基础1
- 基础中的基础篇PHP . MYSQL .我的学习笔记
- PHP与MYSQL学习笔记-基础篇4(正则简介)
- PHP课程-Php基础学习1笔记
- PHP学习笔记01——基础语法
- 关于php基础学习笔记一
- PHP学习笔记1:基础知识快速浏览
- PHP基础学习笔记
- php学习笔记十:类与对象-基础
- PHP学习笔记08——GD绘图基础
- PHP Laravel 框架学习笔记(一) 路由器 中间件 基础使用