php学习笔记

如果代码在输出中文时乱码了,需要在php脚本内添加header(‘Content-type:text/html;charset=utf-8’);

一、代码标记

①ASP标记:<% php 代码 %>
②短标记:<? php 代码 ?>,以上两种基本弃用,如果要使用那么要在配置文件中进行开启。
③脚本标记:
④标注标记(常用):<?php php代码?>

二、注释

①行注释
②块注释

三、变量命名规则

①在PHP中变量名字必须以“ ” 开 始 。 ② 名 字 由 字 母 、 数 字 和 下 划 线 构 成 , 但 是 不 能 以 数 字 开 头 。 如 ”开始。 ②名字由字母、数字和下划线构成,但是不能以数字开头。 如 线var1;是正确的,而$1var、var1都是错误的。
③在PHP中本身还允许中文变量,但是不建议。

四、预定义变量

定义:提前定义的变量,系统定义的变量,存储许多需要用到的数据(预定义变量都是数组)。
①$_GET:获取所有标单以get方式提交的数据
②$_POST:post提交的数据都会保存到此
③$_REQUEST:get和post提交的数据都会保持到此
④$GLOBALS:php中所有的全局变量
⑤$_SERVER:服务器信息
⑥$_SESSION:session会话数据
⑦$_COOKIE:cookie会话信息
⑧$_ENV:环境信息
⑨$_FILES:用户上传的文件信息

五、变量的基本使用

①定义变量
$var1; //定义变量
$var2=1; //定义并赋值

②访问变量
echo $var2; //通过var2变量名字找到存储内容并输出

③修改变量
v a r 2 = 2 ; e c h o ‘ < h r / > ’ , var2=2; echo ‘<hr/>’, var2=2;echo<hr/>,var2=1;

④删除变量
unset($var2);

⑤可变变量
$a=’b’;
$b=’c’;
KaTeX parse error: Can't use function '$' in math mode at position 9: a的值为c,因为$̲a=’b’,所以a=$b

⑥值传递
$a=10;
b = b= b=a;
a = 5 ; 执 行 以 上 代 码 后 , a=5; 执行以上代码后, a=5;a=5,$b=10
因为是值传递,只传递值,不传递地址。

⑦引用传递
$a=10;
KaTeX parse error: Expected 'EOF', got '&' at position 3: b=&̲a;
a = 5 ; 执 行 以 上 代 码 后 , a=5; 执行以上代码后, a=5;a=5,$b=5
因为是引用传递,传递的是地址,因此地址指向的数据发生变化,其赋值的值也发生变化。

六、常量的声明

①define(‘常量名’,常量值)
②const 常量名=常量值

七、常量的命名规则

①常量不需要” ” 符 号 , 一 旦 使 用 ” ”符号,一旦使用” 使”符号就会被系统认为是变量。
②常量的名字由字母、数字和下划线构成,但是不能以数字开头。
③常量的名字通常以大写字母为主(与变量区别)。
④常量命名规则与变量相比,可以使用一些特殊字符,但是特殊字符的常量只能用define定义。
如define(‘--!’,’smile’) //是可以的
const -
-!=’smile’ //是不允许的

八、常量使用形式

①没有特殊字符的情况,直接使用echo 常量名
②有特殊字符的情况,使用constant(‘常量名’)

九、系统常量

定义:系统帮助用户的常量,用户可以直接使用。
①PHP_VERSION:PHP版本号。
②PHP_INT_SIZE:整形大小。
③PHP_INT_MAX:整形能表示的最大值。

十、魔术常量

定义:由双下划线开始+常量名+双下划线结束,这种常量称为系统魔术常量,魔术常量的值通常会跟着环境变化,但是用户改变不了。
①__DIR__:当前被执行的脚本所在电脑的绝对路径(不带文件名字)。
②__FILE__:当前被执行的脚本所在电脑的绝对路径(带文件名字)。
③__LINE__:当前所属的行数。
④__NAMESPACE__:当前所属的命名空间。
⑤__CLASS__:当前所属的类。
⑥__METHOD__:当前所属的方法。

十一、数据类型

①基本数据类型:
1.整形:int/integer,表示整数类型。
2.浮点型:float/double,表示小数或者整数存不下的整数。
3.字符串型:string,表示字符串。
4.布尔类型:bool/boolean,表示布尔类型,只有两个值(true、false)
②复合数据类型。输出时需要使用var_dump()函数
1.对象类型:object,存放对象(面向对象)。
2.数组类型:array,存储多个数据(一次性)。
③特殊数据类型
资源类型:resource,存储资源数据(PHP外部数据,如数据库、文件)。
空类型:NULL,只有一个值就是NULL(不能用于运算)。

十二、等于、全等于与不全等于

①等于:,左边与右边的大小相同。
②全等于:
=,左边与右边的大小以及数据类型都要相同。
③不全等于:!==,左边与右边的大小或类型相同。

十三、连接运算符

定义:将PHP中多个字符串拼接的一种符号。
①.:将两个字符串连接到一起。
②.=:将左边的内容与右边的内容连接起来,然后重新赋值给左边变量。

十四、错误抑制符

在PHP中有一些错误可以提前预知,但是这些错误可能无法避免,但是又希望报给用户看,可以使用错误抑制符处理。
在可能出错的表达式前面使用@符号即可。

十五、代替语法

PHP提供了对应分支结构和循环结构的语法。
①左大括号‘{’用冒号代替‘:’。
②右大括号‘}’用‘end+对应的起始标记代替’。
如for循环时的右大括号可以代替为‘endfor’。

十六、常见系统函数

①有关输出的函数
1、print():类似于echo输出提供的内容,本质是一种结构(不是函数),返回值是1,可以不用括号。
2、print_r():类似于var_dump,但是比var_dump简单,不会输出数据的类型,只会输出值(数组打印时使用比较多)。

②有关时间的函数
1、data():按照指定个数对对应的时间戳(从1970年开始计算的秒数),如果没有指定特定的时间戳,那么就是默认解释当前时间戳。
2、time():获取当前时间对应的时间戳。
3、microtime():获取微妙级别的时间。
4、strtotime():按照规定格式的字符串转换成时间戳。

③有关数学的函数
1、max():指定参数中的最大值。
2、min():比较两个数中较小的指。
3、rand():得到一个随机数,指定区间的随机整数。
4、mt_rand():与rand一样,只是底层结构不一样,效率比rand()高。
5、round():四舍五入。
6、ceil():向上取整。
7、floor():向下取整。
8、pow():求指定数字的指数次结果。
9、abs():绝对值。
10、sqrt():求平方根。

④有关函数的函数
1、function_exists():判断指定的函数名字是否存在内存中(帮助用户不去使用一个不存在的函数,让代码安全性更高)。
2、func_get_arg():在自定义函数中去获取指定数值对应的参数。
3、func_get_args():在自定义函数中获取所有的参数(数组)。
4、func_num_args():获取当前自定义函数的参数数量。

十七、文件包含

①文件包含的定义:在一个PHP脚本中,去将另外一个文件(PHP)包含进来,去合作完成一件事。

②文件包含的意义:
1、要么使用被包含文件中的内容,实现代码的共享(重用):向上包含。
向上包含(索要):在当前脚本要用某个代码之前包含别的文件。
2、要么自己有东西可以给别的文件使用,实现代码的共享(重用):向下包含。
向下包含(给予):在自己有某个东西的时候,需要别的脚本来显示(自己代码写完之后包含其他文件)。

③文件包含的作用:分工协作,每个脚本做的事情不一样,因此可以使用协作的方式,让多个脚本共同完成一件事。

④文件包含的形式:
1、include:包含文件。如果找不到文件时,会报Waring错误,后续的代码仍然可以运行下去。
2、include_once:系统会自动判断文件包含过程中,是否已经包含过(一个文件最多被包含一次)。
3、require:与include相同。如果找不到文件时,会报Error错误,后续的代码无法允许下去。
4、require_once:与include_once相同。
⑤向上包含基本语法:
1、include ’文件名字’;
2、include (‘文件名字’); //文件名字包含路径
⑥向下包含基本语法:
1、include_once ’文件名字’;
2、include_once (‘文件名字’); //文件名字包含路径

十八、文件加载原理

①PHP代码的执行流程
1、读取代码文件(PHP)。
2、编译:将PHP代码转换成字节码(生成opcode)。
3、zhendengine来解析opcode,按照字节码去进行逻辑运算。
4、转换成对应的HTML代码。

②文件加载原理:
1、在文件加载(include或者require)的时候,系统会自动的将被包含文件中的代码相当于嵌入到当前文件中。
2、加载位置:在哪加载,对应的文件中的代码嵌入的位置就是对应的文件加载位置。
3、在PHP中被包含的文件是单独进行编译的。
PHP文件在编译的过程中如果出现了语法错误,那么会失败(不会执行);但是如果被包含文件有错误的时候,系统会在执行到包含这条语句的时候才会报错。

十九、函数

①函数的声明:function 函数名(){}。如果函数的形参有使用到&符号,说明是引用参数,会影响到实参的值。
②函数的调用:函数名。
③函数是在代码执行阶段,碰到函数名字的时候才会调用,不是在编译阶段。
④函数调用的特点:只要系统在内存中能够找到对应的函数,就可以执行(函数的调用可以在函数定义之前)。
⑤函数执行的内存分析:
1、读取代码进入到代码段(编译:将代码编成字节码存储到内存)。
2、根据代码逐行执行。
因此,函数是先编译,后执行的。

二十、作用域

①全局变量:就是用户普通定义的变量(函数外部定义)。
所属全局空间:在PHP中只允许在全局空间中使用,理论上函数内部无法使用。函数内部只能通过$GLOBALS[‘全局变量名’]来访问。
脚本周期:直到脚本运行结束(最后一行代码执行完)。

②局部变量:就是在函数内部定义的变量。
所属当前函数空间:在PHP中只允许在当前函数自己内部使用。
函数周期:函数执行结束(函数是在栈区中开辟独立内存空间运行)。

③超全局变量:系统定义的变量(预定义变量:$_SERVER、$_POST等)。
所属超全局空间:没有访问限制(函数内外都可以访问)。

二十一、全局访问局部、局部访问全局

如果想函数内部使用外部变量,除了$GLOBALS之外,还可以使用参数传值(如果要统一战线还可以使用引用传值)。
在PHP中,其实还有一种方式,能够实现全局访问局部,同时局部也可以访问全局的关键字:global。
global关键字:是一种在函数里面定义变量的一种方式。
①如果使用global定义的变量名在外部存在(全局变量),那么系统在函数内部定义的变量直接指向外部全局变量所指的内存空间(同一个变量)。
②如果使用global定义的变量名在外部不存在(全局变量),系统会自动在全局变量(外部)定义一个与局部变量同名的全局变量。
本质的形式:在函数的内部和外部,对一个同名变量(全局和局部)使用同一块内存地址保存数据,从而实现共同拥有。

基本语法:
global 变量名。 //不能赋值,只能声明
变量名 = 值。 //修改

二十二、可变函数

当前有一个变量所保存到的值,刚好是一个函数的名字,那么就可以使用变量+()来充当函数名使用。

实际应用:

二十三、匿名函数

①定义:匿名函数是指没有名字的函数。
②基本语法:
变量名=function(){
函数体
};

③变量保存匿名函数,本质得到的是一个对象(closure)。
④闭包(closure)
定义:要执行的代码块(由于自由变量被包含在代码块内,这些自由变量以及它们引用的对象没有被释放)和为自由变量提供绑定的计算环境(作用域)。
可以简单理解为函数内部有一些局部变量(要执行的代码块)在函数执行之后没有被释放,是因为在函数内部还有对应的函数在引用(函数的内部函数:匿名函数)。

二十四、错误处理

①定义:指的是系统(或者用户)在对某些代码进行执行的时候,发现有错误,就会通过错误处理的形式告知程序员。
②错误分类
1、语法错误:用户书写的代码不符合PHP的语法规范,语法错误会导致代码在编译过程中不通过,所以代码不会执行。
2、运行时错误:代码编译通过,但是代码在执行的过程中会出现一些条件不满足导致的错误。
3、逻辑错误:程序员在写代码的时候不够规范,出现了一些逻辑性的错误,导致代码正常执行,但是得不到想要的结果。
③错误代号
所看到的错误代码在PHP中都被定义成了系统常量(可以直接使用)。
1、系统错误
E_PARSE:编译错误,代码不会执行。
E_ERROR:fatal error,致命错误,会导致代码不能正确继续执行(出错的位置断掉)。
E_WARNING:warning,警告错误,不会影响代码执行,但是可能得到意想不到的结果。
E_NOTICE:notice,通知错误,不会影响代码执行。
2、用户错误
E_USER_ERROR
E_USER_WARNING
E_USER_NOTICE
用户在使用自定义错误触发的时候,会使用到的错误代号(系统不会用到)。
3、其他
E_ALL,代表着所有从错误(通常在进行错误控制的时候使用比较多),建议在开发过程中(开发环境)使用。

所有以E开头的错误常量(代号)其实都是由一个字节存储,然后每一种错误占据一个对应的位,如果想进行一些错误的控制,可以使用位运算进行操作。

排除通知级别notice:E_ALL & ~E_NOTICE
只要警告和通知:E_WARNING | E_NOTICE

④错误触发
程序运行时触发:系统自动根据错误发生后,对比对应的错误信息,输出给用户,主要针对代码的语法错误和运行时错误。
人为触发:直到某些逻辑可能会出错,从而使用对应的判断代码来触发响应的错误提示,对应的函数是trigger_error()。

⑤错误显示设置
定义:哪些错误该显示,以及该如何显示。
1、PHP的配置文件:全局配置(php.ini文件)。
2、可以在运行的PHP脚本中去设置:在脚本中定义的配置项级别比配置文件高(因此因此在开发当中都会在代码中去进行控制和配置)。
error_reporting():设置对应的错误显示级别。
ini_set(‘配置文件中的配置项’,配置值)
ini_set(‘error_reporting’,E_ALL);
ini_set(‘display_errors’,1);

⑥错误日志设置
在实际的生产环境中,不会直接让错误赤裸裸的显示给用户:
1、对用户不友好。
2、不安全,因为错误会暴露网站的很多信息(路径以及文件名)。
所以在生产环境中,一般不显示错误,但是又不可能避免会出现错误,这个时候不希望看到,但是又希望捕捉到可以让后台程序员去修改,需要保存到日志文件中,需要在PHP配置文件中或者代码中(ini_set)设置对应error_log配置项。
Ⅰ、开启日志功能(log_errors=On)
Ⅱ、指定路径(error_log=’错误保存的文件路径’)

⑦自定义错误处理
最简单的错误处理:trigger_errors()函数,但是该函数不会阻止系统报错。
PHP系统提供了一种用户处理错误的机制:用户自定义错误处理函数,然后将该函数增加到操作系统错误处理的句柄中,然后系统会在碰到错误之后,使用用户定义的错误函数。
1、如何将用户自定义的函数放入到系统中?
使用set_error_handler()函数。
2、自定义错误处理函数,系统有要求。

代码实现:
1、自定义错误处理函数:

2、注册自定义函数:修改错误处理机制

二十五、字符串类型

①字符串定义语法
1、单引号字符串:使用单引号包裹。
2、双引号字符串:使用双引号包裹。
3、nowdoc字符串。
4、heredoc字符串。
引号方式:比较适合定义那些比较短(不超过一行)或者没有结构要求的字符串。
结构化定义:有结构要求或内容超过一行,可以使用nowdoc、heredoc结构定义。

②字符串转义
定义:在计算机通用协议中,有一些特定的方式定义的字母,系统会特定处理,通常这种方式都是使用放斜杠+字母(单词)的特性。
1、\r\n:回车换行。
2、\’:在单引号支付串中显示单引号。
3、\”:在双引号支付串中显示双引号。
4、\r:代表回车(理论上是回到当前行的首位置)。
5、\n:代表新一行。
6、\t:tab键。
7、$:在PHP中使用$符号作为变量符号,因此需要特定识别。

③单引号和双引号的区别:
1、其中单引号能够识别\’,而双引号就不能够识别\’。

2、双引号能够识别变量
变量识别规则;
Ⅰ、变量本身系统能够与后面的内容区分,应该保证变量的独立性,不要让系统难以区分。
Ⅱ、使用变量专业标识符(区分),给变量加上一组大括号{}。

④、结构化定义字符串变量的规则
1、结构化定义字符串定义的边界有条件
1.1、上边界符字符串后面不能跟如何内容,包括空格。
1.2、下边界符后面必须在最左边。
1.3、下边界后面只能跟分号,不能跟任何内容,包括分号后面不能带空格。
2、结构化定义字符串的内部(边界符之间)的所有内容都是字符串本身,也就是是都会被输出。

二十六、字符串长度

中文在ASCII中,每个中文是3个字节。
①基本函数strlen():得到字符串的长度(字节为单位)。
②多字节字符串的长度问题:包含中文长度。
③多字节字符串拓展模块:mbstring(mb:Multi Bytes)。
实现需要在php.ini配置文件中将extension=php_mbstring.dll的注释去掉,加载PHP中的mbstring拓展。
mbstring拓展针对的是一些关于字符统计:strlen只是针对标准交换码ASCII,mbstring会针对不同的字符集。

二十七、字符串相关函数

①转换函数:implode(),explode(),str_split()。
implode(连接方式,数组):将数组中的元素按照某个规则连接成一个字符串。
explode(分割字符,目标字符串):将字符串按照某个格式进行分割,变成数组。
北京|上海|广州 == array(‘北京’,’上海’,’广州’);
str_split(字符串,字符串长度):按照指定长度拆分字符串得到数组。
②截取函数:trim(),ltrim(),rtrim()
trim(字符串,[,指定字符]):本身默认是用来去除两边的空格(中间不行),但是也可以指定要去除的内容,是按照指定的内容循环去除两边有的内容,直到碰到一个不是目标字符为止。
ltrim():去除左边的。
rtrim():去除右边的。
③截取函数:substr(),strstr()
substr(字符串,起始位置从0开始[,长度]):指定位置开始截取字符串,可以截取指定长度(不指定指到字符串最后)。
strstr(字符串,匹配字符):从指定位置开始,截取到最后(可以用来去文件后缀名)。
④大小转换函数:strtolower(),strtoupper(),ucfirst()
strtolower():全部小写。
strtoupper():全部大写。
ucfirst():首字母大写。
⑤查找函数:strpos(),strrpos()
strpos(‘字符串’,’字符’):判断字符在目标字符串中出现的位置(首次)。
strrpos(‘字符串’,’字符’):判断字符在目标字符串中最后出现的位置。
⑥替换函数:str_replace()
str_replace(‘目标字符’,’替换后的字符’,’字符串’):将目标字符串中部分字符进行替换。
⑦格式化函数:printf(),sprintf()
printf/sprintf(输出字符串有占位符,顺序占位内容):格式化输出数据(与C语言类似)。
⑧其他:str_repeat(),str_shuffle()
str_repeat(‘字符串’,’次数’):重复某个字符N次。
str_shuffle(‘字符串’):实际打乱字符串。

二十八、数组(array)

①定义:数据的组合,指将一组数据(多个)存储到一个指定容器中,用变量指向该容器,然后可以通过变量一次性得到该容器中所有的数据。
②语法:PHP中提供了多种定义数组的方式。
1、使用array关键字:最常用的。
$变量=array{元素1,元素2,元素3}。元素可以是不同类型的。
2、可以使用中括号来包裹数据。
$变量=[元素1,元素2,元素3]。
3、隐形定义数组:给变量增加一个中括号,系统自动变成数组。
$变量[]=值1; //如果不提供下标也可以,系统自动生成(从0开始)。
$变量[下标]=值 //中括号里面的内容称为下标key,该下标可以是字母(单纯)或者数字,与变量命名的规则类似。
③特点
1、可以整数下标或者字符串下标
如果数组下标都为整数:索引数组。
如果数组下标都为字符串:关联数组。
2、不同下标可以混合存在:混合数组。
3、数组元素的顺序以放入顺序为准,跟下标无关。
4、数字下标的自增长特性:从0开始自动增长,如果中间手动出现较大的,那么后面自增长元素从最大的值+1开始。
5、特殊值下标和自动转换
布尔值:true(1)和false(0)。
空:NULL(“”)。
6、PHP中数组元素没有类型限制。
7、PHP中数组元素没有长度限制
PHP中的数组是很大的数据,所以存储位置是堆区,为当前数组分配一块连续的内存。

二十九、多维数组

定义:数组里面的元素又是数组。
①二维数组

②异形数组(不规则数组)
定义:数组中的元素不规则,有普通基本变量也有数组。
在实际开发中,并不常用,尽量让数组与阿森纳规则话(便于进行访问)。

三十、数组遍历

①遍历的基本含义
数组遍历:普通数组数据的访问都是通过数组元素的下标来实现访问,如果数组中所有的数据都需要依次输出出来,就需要我们使用到一些简化的规则来自动获取下标以及输出数组元素。
a r r = a r r a y ( 0 = > a r r a y ( ‘ n a m e ’ = > ’ T o m ’ ) , 1 = > a r r a y ( ‘ n a m e ’ = > ’ J a c k ’ ) ) ; / / 二 维 数 组 / / 访 问 一 维 元 素 : arr=array(0=>array(‘name’=>’Tom’),1=>array(‘name’=>’Jack’)); //二维数组 //访问一维元素: arr=array(0=>array(name=>Tom),1=>array(name=>Jack));////访arr[一维下标]
$arr[0]; //结果:array[‘name’=>’Tom’);

//访问二维元素:$arr[一维下标][二维下标]
$arr[1][‘name’]; //结果:Jack;

三十一、foreach遍历

①语法
foreach( 数 组 变 量 a s [ 数组变量 as [ as[下标=>]KaTeX parse error: Expected '}', got 'EOF' at end of input: 值){ //通过下标访问元素的下标,通过$值访问元素的值
}
通常:如果是关联数组(字母下标),就需要下标,如果是数组下标就字节访问值。

②原理
本质是数组的内部有一颗指针,默认是指向数组元素的第一个元素,foreach就是利用指针呢个去获取数据,同时移动指针。
foreach($arr as k = > k=> k=>v){
//循环体
}
1、foreach会重置指针:让指针指向第一个元素。
2、进入foreach循环:通过指针取得当前第一个与阿森纳,然后将下标取出放到对应的下标变量 k 中 ( 如 果 存 在 ) , 将 取 出 的 值 放 到 变 量 k中(如果存在),将取出的值放到变量 kv中。指针下移。
3、进入到循环内部(循环体),开始执行。
4、重复2和3,直到在2的时候遇到指针取不到内容(指针指向数组最后)。

三十二、for循环遍历数组

基于已知边界条件(起始和结束)然后有条件的变化(规律),因此for循环遍历数组有对应条件。
1、获取数组长度:count(数组)得到数组元素的长度。
2、要求数组元素的下标是规律的数字。

三十三、while配合each和list遍历数组

①each函数使用:each能够从一个数组中获取当前数组指针所指向的元素下标和值,拿到之后将数组指针下移,同时将拿到的元素下标和值以一个四个元素的数组返回。
1、0下标->取得元素的下表值(key)
2、1下标->取得元素的值(value)
3、key下标->取得元素的下表值
4、value下标->取得元素的值
②list函数使用:list是一种结构,不是一种函数是(没有返回值),是list提供一堆变量取从一个数组中取得元素值,然后依次存放到对应的变量当中(批量为变量赋值:值来源于数组),list必须冲索引数组中去获取数据,而且必须从0开始。
正确操作:

错误操作:

list和each配合特别好:each一定有两个元素就是0和1下标元素。
list(变量1,变量2)=each(数组); //是一种赋值运输,但是可以得到false结果(each取不到正确的结果),整个表达式为false。

三十四、数组的相关函数

①排序函数:对数组元素进行排序,都是按照ASCII码进行比较,可以进行英文比较。
sort():顺序排序(根据值的大小来排序,下标重排)。
rsort():逆序排序
asort():顺序排序(下标保留)
arsort():逆序排序
ksort():顺序排序(按照下标排序)
lrsort():逆序排序
shuffle():随机打乱函数
②指针函数
reset():重置指针,将数组指针回到首位
end():重置指针,将数组指针指到最后一元素
next():指针下移,取得下一个元素的值
prev():指针上移,取得上一个元素的值
current():获取当前指针对应的元素值
key():获取当前指针对应的下标值
注意事项:nnext和prew会移动指针,有可能导致指针移动到最前或者最后(离开数组),导致数组不能使用,通过next和prev不能够回到正确的指针位置。只能通过end或者reset进行指针重置。
③其他函数
count():统计数组中元素的数量
array_push():往数组中加入一个元素(数组后面)。
array_pop():从数组中取出一个元素(数组后面),并删除该元素。
array_shift():从数组中取出一个元素(数组前面),并删除该元素。
array_unshift():往数组中加入一个元素(数组前面)。
array_reverse():数组倒置。
in_array():判断一个元素是否在数组中。
array_keys():获取数组的所有下标,返回一个索引数组。
array_values():获取数组的值,返回一个索引数组。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值