PHP提供了很多的函数,当然函数的参数也很多,按照我们著名的28原则,可选参数很少用到,甚至我们都忽略了可选参数的存在,可是在很多情况下可选参数发挥了巨大的作用,下面简单列举几个来说明。
1、mkdir
很多地方讲PHP的递归都是用递归创建目录作为例子的,殊不知,mkdir自带了递归创建目录的功能,就是他的第三个参数。
bool mkdir ( string $pathname [, int $mode = 0777 [, bool $recursive = false [, resource $context ]]] )
$recursive在手册中解释为“Allows the creation of nested directories specified in the pathname”,注意到了么?
//会提示错误
mkdir('a/b/c/d/e');
//下面这个则会创建成功
mkdir('a/b/c/d/e',0755,true);
2、json_decode
一个array经过json_encode之后在json_decode变成了object,不少人吐槽过这个不人性化的设定吧?看看手册中这个函数的参数列表:
//接受一个 JSON 格式的字符串并且把它转换为 PHP 变量
mixed json_decode ( string $json [, bool $assoc = false [, int $depth = 512 [, int $options = 0 ]]] )
我们来看第二个参数的含义“当该参数为 TRUE 时,将返回 array 而非 object 。”,现在知道怎么做了吧?
3、str_replace
我想很多人看到过这样的写法
$str=str_replace('a1','b1',$str);
$str=str_replace('a2','b2',$str);
$str=str_replace('a3','b3',$str);
$str=str_replace('a1','b',$str);
$str=str_replace('a2','b',$str);
$str=str_replace('a3','b',$str);
我想这些人一定没有仔细看过手册中的str_replace的函数吧?
//该函数返回一个字符串或者数组。该字符串或数组是将 subject 中全部的 search 都被 replace 替换之后的结果。
mixed str_replace ( mixed $search , mixed $replace , mixed $subject [, int &$count ] )
ok,看到了$search,$replace的类型为mixed了吧?
上面的我们可以这样简写
$str=str_replace(array('a1','a2','a3'),array('b1','b2','b3'),$str);
$str=str_replace(array('a1','a2','a3'),'b',$str);
还有第四个参数,替换次数,你注意到了么?
这样的例子还有很多,不要简简单单的知道函数的作用就以为了解了这个函数,当中还有很多你未曾注意到的东西,了解这些细节,可以让你更好的掌握PHP。在这之前,首先保证你有一份最新的手册,不要拿着几年前的手册去看那些陈旧的东西了,php手册最新版下载地址:http://cn2.php.net/get/php_enhanced_zh.chm/from/a/mirror
分享本文到: