站长资讯网
最全最丰富的资讯网站

php高级函数有哪些

php高级函数有哪些

PHP高级函数

1、call_user_func

// 官网地址: http://php.net/manual/zh/function.call-user-func.php

2、get_class

// 官网地址: http://php.net/manual/zh/function.get-class.php

3、get_called_class

// 官网地址: http://php.net/manual/zh/function.get-called-class.php

4、array_map

// 官网地址:http://php.net/manual/zh/function.array-map.php //为数组的每个元素应用回调函数 示例: $str = '1 ,2,3'; $res = array_map(function ($v) {     return intval(trim($v)) * 2; }, explode(',', $str)); $res的返回结果: array(3) { [0]=> int(2) [1]=> int(4) [2]=> int(6) }

5、strpos

 // http://php.net/manual/zh/function.strpos.php //查找字符串首次出现的位置,从0开始编码,没有找到返回false 示例: $time = "2019-03-02 12:00:00"; if(strpos($time,':') !== false){     $time = strtotime($time); } echo $time;

6、array_reverse

// 官网地址:http://php.net/manual/zh/function.array-reverse.php //返回单元顺序相反的数组 示例: $time = "12:13:14"; $arrTime = array_reverse(explode(':',$time)); var_dump($arrTime); array(3) { [0]=> string(2) "14" [1]=> string(2) "13" [2]=> string(2) "12" }

7、pow

// 官网地址:http://php.net/manual/zh/function.pow.php //指数表达式 示例: $time = "12:13:14"; $arrTime = array_reverse(explode(':',$time)); $i = $s = 0; foreach($arrTime as $time){     $s += $time * pow(60,$i);  // 60 的 $i 次方     $i ++; } var_dump($s); int(43994)

8、property_exist

// 官网地址:http://php.net/manual/zh/function.property-exists.php // 检查对象或类是否具有该属性 //如果该属性存在则返回 TRUE,如果不存在则返回 FALSE,出错返回 NULL 示例: class Test {     public $name = 'daicr';     public function index()     {         var_dump(property_exists($this,'name')); // true     } }

9、passthru

// 官网地址:http://php.net/manual/zh/function.passthru.php //执行外部程序并且显示原始输出 //功能和exec() system() 有类似之处 示例: passthru(Yii::$app->basePath.DIRECTORY_SEPARATOR . 'yii test/index');

10、array_filter

// 官网地址:http://php.net/manual/zh/function.array-filter.php //用回调函数过滤数组中的单元 示例: class TestController extends yiiconsoleController {     public $modules = '';     public function actionIndex()     {         //当不使用callBack函数时,array_filter会去除空值或者false         $enableModules = array_filter(explode(',',$this->modules));         var_dump(empty($enableModules)); //true         //当使用callBack函数时,就会用callBack过滤数组中的单元         $arr = [1,2,3,4];         $res = array_filter($arr,function($v){            return $v & 1;  //先转换为二进制,在按位进行与运算,得到奇数         });         var_dump($res);         //array(2) { [0]=> int(1) [2]=> int(3) }     } }

11、current

// 官网地址:http://php.net/manual/zh/function.current.php //返回数组中的当前单元 $arr = ['car'=>'BMW','bicycle','airplane']; $str1 = current($arr); //初始指向插入到数组中的第一个单元。 $str2 = next($arr);    //将数组中的内部指针向前移动一位 $str3 = current($arr); //指针指向它“当前的”单元 $str4 = prev($arr);    //将数组的内部指针倒回一位 $str5 = end($arr);     //将数组的内部指针指向最后一个单元 reset($arr);           //将数组的内部指针指向第一个单元 $str6 = current($arr); $key1 = key($arr);     //从关联数组中取得键名 echo $str1 . PHP_EOL; //BMW echo $str2 . PHP_EOL; //bicycle echo $str3 . PHP_EOL; //bicycle echo $str4 . PHP_EOL; //BMW echo $str5 . PHP_EOL; //airplane echo $str6 . PHP_EOL; //BMW echo $key1 . PHP_EOL; //car var_dump($arr);   //原数组不变

12、array_slice

// 官网地址:http://php.net/manual/zh/function.array-slice.php //从数组中取出一段 示例: $idSet = [1,2,3,4,5,6,7,8,9,10]; $total = count($idSet); $offset = 0; $success = 0; while ($offset < $total){     $arrId = array_slice($idSet,$offset,5);     //yii2的语法,此处,注意array_slice的用法就行     $success += $db->createCommand()->update($table,['sync_complate'=>1],['id'=>$arrId])->execute();      $offset += 50; } $this->stdout('共:' . $total . ' 条,成功:' . $success . ' 条' . PHP_EOL,Console::FG_GREEN); //yii2的语法

13、mb_strlen()

// 官网地址:http://php.net/manual/zh/function.mb-strlen.php //获取字符串的长度 //strlen 获取的是英文字节的字符长度,而mb_stren可以按编码获取中文字符的长度 示例: $str1 = 'daishu'; $str2 = '袋鼠'; echo strlen($str1) . PHP_EOL;                //6 echo mb_strlen($str1,'utf-8') . PHP_EOL;  //6 echo strlen($str2) . PHP_EOL;               // 4 一个中文占 2 个字节 echo mb_strlen($str2,'utf-8') . PHP_EOL;  //2 echo mb_strlen($str2,'gb2312') . PHP_EOL; //2

14、list

// 官网地址:http://php.net/manual/zh/function.list.php //把数组中的值赋给一组变量 示例: list($access,$department)= ['all','1,2,3']; var_dump($access); // all

15、strcasecmp

// 官网地址:https://www.php.net/manual/zh/function.strcasecmp.php //二进制安全比较字符串(不区分大小写) //如果 str1 小于 str2 返回 < 0; 如果 str1 大于 str2 返回 > 0;如果两者相等,返回 0。 示例: $str1 = 'chrdai'; $str2 = 'chrdai'; var_dump(strcasecmp($str1,$str2)); // int 0

16、fopen rb

// 官网地址:https://www.php.net/manual/zh/function.fopen.php //1、使用 'b' 来强制使用二进制模式,这样就不会转换数据,规避了widown和unix换行符不通导致的问题, //2、还有就是在操作二进制文件时如果没有指定'b'标记,可能会碰到一些奇怪的问题,包括坏掉的图片文件以及关于rn 字符的奇怪问题。 示例: $handle = fopen($filePath, 'rb');

17、fseek

// 官网地址:https://www.php.net/manual/zh/function.fseek.php //在文件指针中定位 //必须是在一个已经打开的文件流里面,指针位置为:第三个参数 + 第二个参数 示例: //将文件指针移动到文件末尾 SEEK_END + 0 fseek($handle, 0, SEEK_END);

18、ftell

// 官网地址:https://www.php.net/manual/zh/function.ftell.php //返回文件指针读/写的位置 //如果将文件的指针用fseek移动到文件末尾,在用ftell读取指针位置,则指针位置即为文件大小。 示例: //将文件指针移动到文件末尾 SEEK_END + 0 fseek($handle, 0, SEEK_END); //此时文件大小就等于指针的偏移量 $fileSize = ftell($handle);

19、basename

// 官网地址:https://www.php.net/manual/zh/function.basename.php //返回路径中的文件名部分 示例: echo basename('/etc/sudoers.d');   // sudoers ,注意没有文件的后缀名,和pathinfo($filePath)['filename']功能差不多

20、pathinfo

// 官网地址:https://www.php.net/manual/zh/function.pathinfo.php //返回文件路径的信息 示例: $pathParts = pathinfo('/etc/php.ini'); echo $pathParts['dirname'] . PHP_EOL;     // /etc ,返回路径信息中的目录部分 echo $pathParts['basename'] . PHP_EOL;  // php.ini ,包括文件名和拓展名 echo $pathParts['extension'] . PHP_EOL; // ini ,拓展名 echo $pathParts['filename'] . PHP_EOL;  // php ,只有文件名,不包含拓展名 ,和basename()函数功能差不多

21、headers_sent($file, $line)

// 官网地址:https://www.php.net/manual/zh/function.headers-sent.php //检测 HTTP 头是否已经发送 //1、http头已经发送时,就无法通过header()函数添加

赞(0)
分享到: 更多 (0)
网站地图   沪ICP备18035694号-2    沪公网安备31011702889846号