-
i++和++i是什么意思?
都是i=i+1的意思,区别在于i++是i先不自加,在语句完后自加,++i先自加;列如a=1+i++;i本来为1的话,这里a=1+1;语句完后i才加1为2;
a=1+++i的话就先i=i+1;i=2.然后a=i+1,a=3查看全部 -
require:如果包含不存在的文件则会报出致命错误,代码停止执行;
include:如果包含不存在的文件会提示,后面的代码继续执行;
*_once:文件只包含一次,而不加once则是写几次就会包含几次
查看全部 -
递归函数:函数体自己调用自己,通过特定条件结束执行,__FUNCTION__,魔术变量,获取函数名,递归函数用法:
查看全部 -
使用回调函数时直接将整个匿名函数作为参数写进去
查看全部 -
回掉函数的使用方法:
查看全部 -
array_filter()过滤数组中的元素:
查看全部 -
array_walk()的使用方法:
<?php $arr = array(1,2,3,4,5,6,7,8); function test1(&$var){//引用符号,指向存储地址,会改变原元素的值 $var *=3; return $var; } $res = array_walk($arr,'test1');//将数组中的元素逐个取出作为实参放进函数中运行 var_dump($res);//布尔类型,成功则返回true print_r($arr);
查看全部 -
array_map(funcName,array);用法
<?php //对数组中的每个元素做函数处理 $arr = array(1,2,3,4,5,6); function cheng($hah){ return $hah*2; } var_dump(array_map('cheng',$arr));
查看全部 -
<?php function add($x,$y){ return $x+$y; } function reduce($x,$y){ return $x-$y; } function calc($funcName,$x,$y){ return $funcName($x,$y); } echo calc('add',5,5);
查看全部 -
利用可变函数,形成回调函数: <?php function eat(){ echo "吃饭!"; } function play(){ echo "玩耍!"; } function drink(){ echo "喝水!"; } function doWhat($funcName){ echo "我正在:"; $funcName(); } doWhat('drink');//括号里面是字符串
查看全部 -
可变函数:将函数名赋值给字符串类型的变量(等量代换)
get_defined_functions() - 得到已定义的所有函数
查看全部 -
传值和传引用的区别:
当在形参前面加个&表示穿引用(地址),此时调用函数的时候实参不能是值,只能是变量
查看全部 -
在函数外定义的变量称之为全局变量;在函数内同样无法直接使用!
要想在函数内使用全局变量:
1、通过global关键字:
<?php $i = 1; $j = 2; function glo(){ global $i;//或者写成global $i,$j; global $j; $sum = $i + $j; return $sum; } echo glo();//输出3
需要注意的是,当在函数内用global关键字使用了全局变量时,如果重新给全局变量赋值,则会改变全局变量的值:
<?php $i = 1; $j = 2; function glo(){ global $i;//或者写成global $i,$j; global $j; $i = 3; $j = 5; } glo();//相当于global打通了函数内外 echo $i,$j;//此时输出3 5,而不再是1 2! //在函数体内创建全局变量: function glo1(){ global $m,$n;//注意不能在创建的同时给变量赋值:global $m = 1;会报错! $m = 1; $n = 2; } glo1(); echo $m,$n;
2、通过$GLOBALS超全局变量:$GLOBALS['变量名']
<?php function jubu(){ $i = 1; $j = 2; } jubu(); $m = 5; print_r($GLOBALS) ;//以数组形式包含所有全局变量,键名为变量名,键值为变量的值; print_r($GLOBALS['m']);//输出5
查看全部 -
局部变量=》动态变量与静态变量的区别:
1、动态变量在函数执行完之后立即被释放;
2、静态变量,由关键字static申明,当第一次调用函数的时候相当于初始化静态变量,当函数执行完毕之后静态变量并没有被释放而是保存在静态内存中,当再次调用函数的时候首先静态内存中取出变量的值接着执行!
<?php function sta(){ static $i = 1; $i++; return $i; } echo sta()."<br>"; //输出2 echo sta()."<br>"; //输出3 echo sta()."<br>"; //输出4 echo "<hr>"; function notSta(){ $i = 1; $i++; return $i; } echo notSta()."<br>";//输出2 echo notSta()."<br>";//输出2 echo notSta()."<br>";//输出2
查看全部 -
PHP获取文件后缀名(提供7种方法):
$file = 'x.y.z.png';
echo substr(strrchr($file, '.'), 1);
解析:
substr(name,int):从指定位置开始向后取,从0开始计数strrchr($file, '.')
strrchr() 函数查找字符串在另一个字符串中最后一次出现的位置,并返回从该位置到字符串结尾的所有字符
2.$file = 'x.y.z.png';
echo substr($file, strrpos($file, '.')+1);
解析:strrpos($file, '.')
查找 "." 在字符串中最后一次出现的位置,返回位置 substr()从该位置开始截取
3.$file = 'x.y.z.png';
$arr=explode('.', $file);
echo $arr[count($arr)-1];
4.$file = 'x.y.z.png';
$arr=explode('.', $file);
echo end($arr); //end()返回数组的最后一个元素
5.$file = 'x.y.z.png';
echo strrev(explode('.', strrev($file))[0]);
6.$file = 'x.y.z.png';
echo pathinfo($file)['extension'];
解析:pathinfo() 函数以数组的形式返回文件路径的信息。包括以下的数组元素:
[dirname]
[basename]
[extension]
7.$file = 'x.y.z.png';
echo pathinfo($file, PATHINFO_EXTENSION);
总结:字符串截取2种,数组分割3种,路径函数2种查看全部
举报