当前位置:首页 > PHP教程 > php函数 > 列表

PHP自定义函数+系统函数库(代码示例)

发布:smiling 来源: PHP粉丝网  添加日期:2022-05-29 08:12:39 浏览: 评论:0 

全局变量

  1. $n = 5; //全局变量 
  2.  
  3.   function fun1(){ 
  4.  
  5.       global $n
  6.  
  7.       echo '我在函数体内也可以调用全局变量n,它的值是:' , $n;//5 
  8.  
  9.       $n++; 
  10.  
  11.   } 
  12.  
  13.   fun1(); 
  14.  
  15.   echo '<hr>'
  16.  
  17.   echo $n;//6 
  18.  
  19.  
  20.  
  21.  
  22.  
  23.  
  24.  
  25.  
  26. $n = 6; 
  27.  
  28.   function fun1(){ 
  29.  
  30.       echo '变量的值是:' , $GLOBALS['n']; 
  31.  
  32.       $GLOBALS['n']++; 
  33.  
  34.   } 
  35.  
  36.   fun1(); 
  37.  
  38.   echo $GLOBALS['n']; 

不使用循环语句,来计算1~100的和

  1. function recursive($n){ 
  2.  
  3.     if($n>=1){ 
  4.  
  5.         return $n + recursive($n-1); 
  6.  
  7.     } 
  8.  
  9.  
  10. echo recursive(100); 

引用

  1. $foo = 'Bob'
  2.  
  3. $bar = &$foo//看待成变量的别名 
  4.  
  5. $bar = 'Rose'
  6.  
  7. echo $foo;//Rose 
  8.  
  9. $foo = 'Mooc'
  10.  
  11. $bar = &$foo//看待成变量的别名 
  12.  
  13. unset($foo); //变量销毁 
  14.  
  15. echo $bar;//Mooc 

自定义函数

  1. function fun1(&$n){ 
  2.  
  3.     $n++; 
  4.  
  5.     echo '我是函数体内的局部变量' ,  $n ;//4 
  6.  
  7.  
  8. $n = 3; 
  9.  
  10. fun1($n); 
  11.  
  12. echo $n , '<hr>';//4 

获得扩展名

  1. function getExtension($filename
  2.  
  3.  
  4.     $pos = strrpos($filename'.'); 
  5.  
  6.     $extension = strtolower(substr($filename$pos + 1)); 
  7.  
  8.     return $extension
  9.  
  10.  
  11. $path = 'mooc.func.pHP'
  12.  
  13. var_dump(getExtension($path)); 

求平均数

  1. function avg(...$args
  2.  
  3.   { 
  4.  
  5.       return $args
  6.  
  7.   } 
  8.  
  9.   var_dump(avg(1, 2, 3)); 

系统函数库

字符串转数组

  1. $str = 'A|B|C|D'
  2.  
  3. $arr = explode('|'$str); 
  4.  
  5. print_r($arr);//[A,B,C,D] 

数组转字符串

  1. $arr2 = array('Tom','John','Rose'); 
  2.  
  3. $str2 = implode(',',$arr2); 
  4.  
  5. echo $str2;//Tom,John,Rose 

获取扩展名:

方法一

  1. $filename = 'ab.cd.gif.JpEg'//gepj.fig.dc.ba 
  2.  
  3. $num = strrpos($filename'.'); 
  4.  
  5. echo strtolower(substr($filename$num+1)) , '<br/><br/>';//jpeg 

方法二

  1. $filename = 'ab.cd.gif.JpEg'//gepj.fig.dc.ba 
  2.  
  3. $str2 = strrev($filename);//strrev反转字符串 
  4.  
  5. $num = strpos($str2'.'); 
  6.  
  7. echo strtolower(strrev(substr($str2, 0,$num)));//jpeg 

trim移除字符串两侧的字符

$str = "\n\n\t\tABC\t\t";

echo trim($str);//ABC

md5()加密

$str = 'abc';

echo md5($str);//900150983cd24fb0d6963f7d28e17f72

格式化字符串

  1. $number = 5; 
  2.  
  3. $str = 'shanghai'
  4.  
  5. $txt = sprintf('there are %d million cars in %s',$number,$str); 
  6.  
  7. echo $txt;//there are 5 million cars in shanghai 
  8.  
  9. $number = 123; 
  10.  
  11. $txt = sprintf("带有两位小数的结果是:%1\$.2f,\n不带小数的是:%1\$d",$number); 
  12.  
  13. echo $txt;//带有两位小数的结果是:123.00,不带小数的是:123 

htmlspecialchars特殊字符转为HTML实体

  1. $str = "A>B,B<C,Tom&John,He said:\"I'm OK\""
  2.  
  3. echo htmlspecialchars($str,ENT_QUOTES);//A&gt;B,B&lt;C,Tom&amp;John,He said:&quot;I&#039;m OK&quot; 

通过str_replace进行转换

  1. $str1 = str_replace('&''&amp;'$str); //必须是第一阶梯 
  2.  
  3. $str2 = str_replace('>''&gt;'$str1); 
  4.  
  5. $str2 = str_replace('<''&lt;'$str2); 
  6.  
  7. $str2 = str_replace('"''&quot;'$str2); 
  8.  
  9. $str2 = str_replace('\'''&#39;'$str2); 
  10.  
  11. echo $str2;//A&gt;B,B&lt;C,Tom&amp;John,He said:&quot;I&#039;m OK&quot; 

str_ireplace不区分大小写

  1. $str = 'javascript'
  2.  
  3.   echo str_ireplace('A''b'$str);//jbvbscript 

随机地打乱字符串中的所有字符

  1. $str = 'abcdefghijklmnopqrstuvwxyz'
  2.  
  3. $str = str_shuffle($str); 
  4.  
  5. echo substr($str,0,4);//drif 

strlen获得字符长度

  1. $str1 = NULL;//0 
  2.  
  3.   $str2 = 'AB';//2 
  4.  
  5.   $str3 = '中国';//6 一个中文3个字符 
  6.  
  7.   echo strlen($str1) , strlen($str2) , strlen($str3); 

stripos不区分大小写,字符串从0开始编号,如果没有出现,则返回FALSE

  1. $str1 = 'javascript'
  2.  
  3. $str2 = 'A'
  4.  
  5. var_dump(stripos($str1$str2)); //int(1) 

搜索$str2在字符串中的位置,并返回从该位置到字符串结尾的所有字符

  1. $str1 = 'abcdcef'
  2.  
  3.   $str2 = 'c'
  4.  
  5.   echo strrchr($str1$str2);//cef 

获取扩展名

$filename = 'a.bc.cd.png';

echo substr(strrchr($filename, '.'),1);//png

strtoupper转大写

strtolower转小写

  1. $str1 = 'html'
  2.  
  3. $str2 = 'PHP'
  4.  
  5. echo strtoupper($str1) , strtolower($str2);//HTMLphp 

ucfirst句子首字母大写

ucwords单词首字母大写

$str3 = 'this is a test';

echo ucfirst($str3) , ucwords($str3);

substr截取字符串

负数=字符串长度+该负数

  1. $str = 'javascript'
  2.  
  3. echo strlen($str);//10 
  4.  
  5. echo substr($str, 0,4) ;//java 
  6.  
  7. echo substr($str, 4);//script 
  8.  
  9. echo substr($str, -2);//pt   -2=10-2=8 
  10.  
  11. echo substr($str, -5,-2) , "\n";//cri   -5,-2=5,8 

将字符串转为Zend_Controller_Front

  1. $str = 'ZenD_CONTRollER_FronT'
  2.  
  3.  //1.转换小写 
  4.  
  5.  $str1 = strtolower($str); 
  6.  
  7.  //2.将下划线替换成空格 
  8.  
  9.  $str2 = str_replace('_'' '$str1); 
  10.  
  11.  //3.通过ucwords进行首字母大写操作 
  12.  
  13.  $str3 = ucwords($str2); 
  14.  
  15.  //4.将空格替换成下划线 
  16.  
  17.  $str4 = str_replace(' ''_'$str3); 
  18.  
  19.  echo $str4;//Zend_Controller_Front 
  20.  
  21. floor() ceil() 
  22.  
  23.     $x = 2.7; 
  24.  
  25.     $y = 3.01; 
  26.  
  27.     echo floor($x) , '<br/><br/>';//2 向下取整 
  28.  
  29.     echo ceil($y) , '<br/><br/>';//4 向上取整 

假设记录数为X,每页显示Y条记录,求总页数z

z = ceil(X/Y);

fmod()对浮点数取模

echo fmod(7.8,3) , '<br/>';//1.8

对整数取模

echo 7.8 % 3 ; //整数余数的操作//1

格式化数字

  1. $x = 7896.827; 
  2.  
  3. echo number_format($x) , '<br/><br/>';//7,897 
  4.  
  5. echo number_format($x,2) , '<br/><br/>';//7,896.83 

pow()幂操作 sqrt()平方根操作

echo pow(2,3);//8

echo sqrt(4) ;//2

mt_rand()是更好的随机数生成器,因为它跟rand()相比播下了一个更好地随机数种子;而且性能上比rand()快4倍

echo rand(50,80);

echo mt_rand(10,99);

生成四位数随机验证码

  1. $chars = 'abcdefghijlmnopqrstuvwxyz789654321'
  2.  
  3.   $len = strlen($chars); 
  4.  
  5.   for($i=0;$i<4;$i++){ 
  6.  
  7.       $char .= substr($chars,mt_rand(0,$len-1),1); 
  8.  
  9.   } 
  10.  
  11.   echo $char

round()四舍五入

  1. $x = 7.238; 
  2.  
  3. echo round($x);//7 
  4.  
  5. echo round($x,2);//7.24 

strtotime字符串转时间

  1. echo '当前日期:'  , date('Y-m-d') , "\n";//2020-01-10 
  2.  
  3.  echo '下个月的日期:' , date('Y-m-d'strtotime('1 month')) , "\n";//2020-02-10 
  4.  
  5.  echo '上个月最后一天:' , date('Y-m-d H:i:s',strtotime('last day of -1 month')) , "\n";//2019-12-31 10:39:12 
  6.  
  7.  echo '上个月最后一天零点:' , date('Y-m-d H:i:s'strtotime("midnight last day of -1 month")) , "\n"//2019-12-31 00:00:00 
  8.  
  9.  echo '昨天零点:' ,  date('Y-m-d H:i:s',strtotime('yesterday')) , "\n";//2020-01-09 00:00:00 
  10.  
  11.  echo '现在:' ,  date('Y-m-d H:i:s',strtotime('now')) , "\n";//2020-01-10 10:39:12 
  12.  
  13.  echo '三个星期之间的时间戳是:' ,  strtotime('-3 weeks');//三个星期之间的时间戳是:1576810790 
  14.  
  15.  echo (time() -  strtotime('-3 weeks'))/86400 ;//21  间隔时间 
  16.  
  17.  echo '上个月:'.date('Y-m-d H:i:s',strtotime('-1 month')) ; //上个月:2019-12-10 10:59:50 
  18.  
  19.  echo '上个月的第一天:'.date('Y-m-d H:i:s',strtotime('first day of -1 month'));//上个月的第一天:2019-12-01 10:59:50 

返回当前本地的日期/时间的日期/时间信息

  1. print_r(getdate()); 
  2.  
  3. //Array 
  4.  
  5. //( 
  6.  
  7. //    [seconds] => 3 
  8.  
  9. //    [minutes] => 42 
  10.  
  11. //    [hours] => 10 
  12.  
  13. //    [mday] => 10 
  14.  
  15. //    [wday] => 5 
  16.  
  17. //    [mon] => 1 
  18.  
  19. //    [year] => 2020 
  20.  
  21. //    [yday] => 9 
  22.  
  23. //    [weekday] => Friday 
  24.  
  25. //[month] => January 
  26.  
  27. //[0] => 1578624123 
  28.  
  29. //) 

microtime()返回当前 Unix 时间戳的微秒数

echo microtime();//0.41369400 1578624195

当设置为 TRUE 时,规定函数应该返回一个浮点数,否则返回一个字符串;默认为 FALSE

echo microtime(true);//1578624195.4137

计算程序运行时间

  1. $start = microtime(true); 
  2.  
  3. $sum = 0; 
  4.  
  5. for ($i=0; $i <1000000 ; $i++) {  
  6.  
  7.     $sum += $i
  8.  
  9.  
  10. $end = microtime(true); 
  11.  
  12. echo  '共花费' , round($end - $start,3) , '秒';//共花费0.016秒 
  13.  
  14. time() 
  15.  
  16.     echo time() ;//1578625294 
  17.  
  18.     echo '当前的日期时间是:' , date('Y-m-d H:i:s') ;//当前的日期时间是:2020-01-10 11:01:34 
  19.  
  20.     echo '昨天的日期时间是:' , date('Y-m-d H:i:s',time()-86400) ; //24*60*60 //昨天的日期时间是:2020-01-09 11:01:34 

uniqid() 函数基于以微秒计的当前时间,生成一个唯一的 ID

  1. echo uniqid();//5e17e94f8a19b 
  2.  
  3. echo uniqid('abc');//abc5e17e96c1771e 
  4.  
  5. echo uniqid(microtime());//0.09603300 15786253885e17e96c17727 
  6.  
  7. echo uniqid(microtime() . mt_rand()); //mt_rand(100,999);//0.09604200 15786253884744704985e17e96c1772f 
  8.  
  9. //uuid 8-4-4-4-12 = 32 
  10.  
  11. echo md5(uniqid(microtime() . mt_rand()));//cf6333288fcb04f60fbbedafd127201e 
  12.  
  13. session 
  14.  
  15.     session_start(); 
  16.  
  17.     echo session_id();//bp99jhu204h6vi214ttgcjce80

Tags: PHP自定义函数 PHP系统函数库

分享到: