A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 董事长 中级黑马   /  2016-11-20 14:38  /  1576 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

递归函数
1.        要有结束条件,递归出口
2.        要有函数自己调用自己的语句
递归函数作用:它是把一个大的问题简化较小的问题,最后一路返回。
有代表性的一个例子就是斐波那契数列
数列就是除前两项外,后面每一项都是前的两项的和

程序

Require和require_once区别
Include和include_once与require和require_once行为是相类似的,因此只说一类就可以了
区别只是报错级别的不同。

加上once代表包含文件 只被包含一次。(隐含的说,就是有require_once会检查包含文件是否已包含过,如已经包含过,则不再包含)
有once的好处
是不会重复包含文件,如函数文件(重复包含该报错了)可以避免其被重复包含
有once的弊端
因为每次包含时都需要检查文件是否包含,效率低
由于once每次检查,效率较低,现在通常靠程序结构合理性来达到不重复包含。而很少再使用once
数组函数
统计函数:
统计数组元素函数:Count(数组变量,是否进行递归统计);
求和函数:Array_sum(数组变量);
求乘积函数:Array_product(数组变量);
数组创建函数:
Range(起始值,结束值,步进);  ——建立一个包含指定范围单元的数组
Array_fill(起始下标,填充个数,填充的值);——用给定的值填充数组
Array_combine(数组变量1,数组变量2); ——把两个数组混合成一个新数组,第一个数组的值作为键,第二个数组的值作为相应的值。用来混合的两个数组要求元素数要相等,否则报错
数组判断函数(重点!)
In_array(变量,数组) 用于判断变量是否是数组中的元素的值
注意:此函数经常用于表单提交数据的合法性判断。避免提交的数据不在配置数组中。
Array_key_exists() 判断变量是否是数组中的某个键
同样经常用于表单提交数据的合法性判断
数组和字符串相互转换函数(重点!)
Implode(分隔符字符串,数组变量)  把数组元素用分隔符拼成一个字符串

Explode(分隔符,字符串) 把字符串用分隔符断开分为数组的元素

数组排序函数:
Sort() 把数组元素按照由小到大顺序重新排列
Rsort() 数组元素按照由大到小顺序重新排列
Ksort() 把数组元素按照键由小到大排列
Krsort() 把数组元素按照键由大到小排列
Asort() 把数组元素按照值的大小从小到大重新排列,和sort()的区别是保持键不变
Arsort() 和asort()一样,只是值是按从大到小排列
Natsort()自然排序
Usort( 数组变量, 用户自定义函数名 ) 使用用户自定义函数来排序

键值操作函数
Array_keys(数组变量) 返回数组中所有元素的键
Array_values(数组变量) 返回数组中所有元素的值
Shuffle(数组变量) 将一个数组的元素打乱顺序
Array_flip(数组变量) 返回一个原数组键值交换位置的新数组
注意:当原数组中有相同值的情况时,后面的覆盖前面的
Array_unique(数组变量) 会去除数组中重复的元素
实际应用,把要发送的邮件列表进行去重工作等。
模拟栈操作:
栈:数据进入栈区就有次序问题。栈也分为顶部(右)和底部(左)。
        Array_shift(数组变量); 从头部弹出一个元素(删除第一个元素)
Array_unshift(数组变量,’插入的单元’); 在头部添加一个数据(在数组开头插入一个或多个单元)
Array_push(数组变量,’插入单元’); 在尾部添加一个数据 (将一个或多个单元数组的末尾(入栈)
Array_pop(数组变量); 从尾部弹出一个数据(删除数组中的最后)
回调函数:
Array_map(回调函数,数组变量1,数组变量2,……..); 把回调函数作用于数组的每个元素上
Array_walk(数组变量,回调函数); 同样是把回调函数作用于每个元素上
注意:回调函数是不能够影响到键的
数组拆分合并函数
Array_merge(数组变量1,数组变量2,…) 功能是把多个数组合并成一个
Array_chunk(数组变量,元素数) 把数组分割成多个小数组元素
Array_slice(数组变量,开始下标,取的数量) 从数组中取出一段
Array_rand(数组变量,指定返回几个元素的键) 随机从数组中取出几个元素(取的是键) (从数组中随机取出一个或多个单元)
字符串函数
Gbk一个汉字占用2个字节。Utf-8一个汉字占用3个字节
常用函数
Strlen() 得到字符串的长度  它是使用字节来计算长度的
Md5() 把参数转变为md5编码的字符串
Str_shuffle() 对字符串进行打乱次序
注意:字符串中不要有汉字,否则可能出现乱码的字符串
Strrev() 将字符串中的字母顺序反转同样字符串中不要有汉字,否则会乱码
Str_pad(目标字符串,填充后长度,填充用的字符串,在左、右或两侧) 使用一个字符串来填充另一个字符串为指定长度
Str_repeat(字符串,重复次数)
Str_split(字符串,每一段分割的长度) 把一个字符串分割成数组
字符串查找和替换函数:
*****mb_substr(目标字符串,起始位置,长度); —此函数是用来截中文与英文字符串的函数,可以解决截取中文汉字哦!
Substr(目标字符串,起始位置,长度); —返回字符串的子串
substr_count(目标字符串,子字符串);--计算“子字符串”出现的次数。(返回子字符串在目标字符串中出现的次数。)
strpos (目标字符串,要查找的字符串);—查找字符串首次出现的位置
strstr(目标字符串,子字符串); --查找字符串的首次出现,并返回要查找的字符串第一次出现的位置直到目标字符串的末尾。
Strrpos(目标字符串,要查找的字符串);—计算指定字符串在目标字符串中最后一次出现的位置
strrchr (目标字符串,要查找的字符串); —查找指定字符在字符串中的最后一次出现,并返回要查找的字符串最后一次出现的位置直到目标字符串的末尾。
Chunk_split(string,length,end); —把字符串分割为一连串更小的部分(将字符串分割成小块)。
解释:string:必需。规定要分割的字符串。
          length:可选。一个数字,定义字符串块的长度。
          ed:可选。定义每个字符串块之后放置的内容。
str_replace(要被替换掉的子字符串,替换成的字符串,原字符串); —字符串替换
去除字符函数
有3个函数
Trim() 去除字符串两侧的指定字符(空白字符或者其它字符)
Ltrim() 去除左侧
Rtrim() 去除右侧
Trim()一般我们经常用于接收表单的字符串参数后去除掉两端的空格
默认情况是去除空格(但是还是包括其它的一些如\n等)
示例代码:
<?php
        $str4='itcasti';
                                echo trim($str4,'it');
?>
其结果显示:cas
注意:第2 个参数是字符的列表,不是指字符串,而是看成单个字符
大小写转换函数
strtolower — 将字符串转化为小写
strtoupper — 将字符串转化为大写
lcfirst — 使一个字符串的第一个字符小写
ucfirst — 将字符串的首字母转换为大写
ucwords — 将字符串中每个单词的首字母转换为大写
注意:英文认为空格是单词的分隔符
面试题:
把get_student_info字符串转换成大驼峰法方式GetStudentInfo
                                //面试题:把get_student_info字符串转换成大驼峰方式GetStudentInfo
                            <?php
                                        $str5='get_stuendt_info';
                                        echo $str5=str_replace('_',' ',$str5);
                                        echo '<br/>';
                                           echo $str5=ucwords($str5);
                                        echo '<br/>';
                                        echo $str5=str_replace(' ','',$str5);
?>

和数组元素指针相关的函数
        Key() 取出当前元素的键
        Current() 取出当前元素的值
        Next() 控制指针向后移动一次,指向下一个元素
        Each() 返回数组中当前的”键值对”并将数组指针向后移动一步
        Prev() 让指针向前移动一次,指向上一个元素
        End() 让指针指向最后一个函数
        Reset() 重置指针,让指针指向第一个元素
总结:可以使用key() + current() + next()实现了使用for循环遍历键值数组
使用while循环结构来实现
当数组的指针非法时,key()返回null,利用判断指针,key() + current() + next()遍历数组
例子如下:<?php
                        $arr=array(
                                'dbhost'=>'localhost',
                                'dbuser'=>'root',
                                'dbpwd'=>'123456',
                                'dbport'=>'3306'
                                );
                        while(key($arr)!=null){
                                echo key($arr),"=>",current($arr),'<br/>';
                                next($arr);
                        }
                ?>       
总结:遍历数组有一下几种方法,有foreach, key()+current()+next(); for, each+while, while+list()+each();
注意:list() 把数组中的值赋给一些变量;
例子如下:<?php
list($a, list($b, $c)) = array(1, array(2, 3));
var_dump($a, $b, $c);
?>  其结果:int(1) int(2)  int(3)

数组拷贝时,不仅会拷贝数组的数据,也会拷贝数组的指针位置。

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马