您的位置:首页 > 编程语言 > PHP开发

PHP基础(五) 学习笔记

2019-03-25 21:00 190 查看

目录

一、字符串

        1、定义

        2、字符串长度

        3、字符串相关函数

二、数组

        1、概念

        2、php数组的分类

        3、php数组的创建

        4、多维数组

        5、数组元素的访问

        6、数组的长度

三、数组的指针

四、数组的遍历

        1、for循环       

        2、foreach

        3、while-each-list遍历 (了解)

五、数组操作常用函数

        1、获取数组的长度

        2、获取数组元素的键名和键值

        3、获取数组元素的键名和键值

        4、数组合并

        5、数组的排序

        6、extract

一、字符串

        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 实体

字符 替换后
& (& 符号) &amp;
" (双引号) &quot;,除非设置了
ENT_NOQUOTES
' (单引号) 设置了
ENT_QUOTES
后, &#039; (如果是
ENT_HTML401
) ,或者 &apos; (如果是
ENT_XML1
ENT_XHTML
ENT_HTML5
)。
< (小于) &lt;
> (大于) &gt;
[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/>';

 

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: