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

藏色散人
Freigeben: 2023-04-08 10:40:02
nach vorne
2597 人浏览过

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

全局变量

  $n = 5; //全局变量
    function fun1(){
        global $n;
        echo '我在函数体内也可以调用全局变量n,它的值是:' , $n;//5
        $n++;
    }
    fun1();
    echo '
'; echo $n;//6
Nach dem Login kopieren
  $n = 6;
    function fun1(){
        echo '变量的值是:' , $GLOBALS['n'];
        $GLOBALS['n']++;
    }
    fun1();
    echo $GLOBALS['n'];
Nach dem Login kopieren

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

    function recursive($n){
        if($n>=1){
            return $n + recursive($n-1);
        }
    }
    echo recursive(100);
Nach dem Login kopieren

引用

    $foo = 'Bob';
    $bar = &$foo; //看待成变量的别名
    $bar = 'Rose';
    echo $foo;//Rose
    $foo = 'Mooc';
    $bar = &$foo; //看待成变量的别名
    unset($foo); //变量销毁
    echo $bar;//Mooc
Nach dem Login kopieren

自定义函数

    function fun1(&$n){
        $n++;
        echo '我是函数体内的局部变量' ,  $n ;//4
    }
    $n = 3;
    fun1($n);
    echo $n , '
';//4
Nach dem Login kopieren

获得扩展名

    function getExtension($filename)
    {
        $pos = strrpos($filename, '.');
        $extension = strtolower(substr($filename, $pos + 1));
        return $extension;
    }
    $path = 'mooc.func.pHP';
    var_dump(getExtension($path));
Nach dem Login kopieren

求平均数

  function avg(...$args)
    {
        return $args;
    }
    var_dump(avg(1, 2, 3));
Nach dem Login kopieren

系统函数库

字符串转数组

    $str = 'A|B|C|D';
    $arr = explode('|', $str);
    print_r($arr);//[A,B,C,D]
Nach dem Login kopieren

数组转字符串

    $arr2 = array('Tom','John','Rose');
    $str2 = implode(',',$arr2);
    echo $str2;//Tom,John,Rose
Nach dem Login kopieren

获取扩展名:

方法一

    $filename = 'ab.cd.gif.JpEg'; //gepj.fig.dc.ba
    $num = strrpos($filename, '.');
    echo strtolower(substr($filename, $num+1)) , '

';//jpeg
Nach dem Login kopieren

方法二

    $filename = 'ab.cd.gif.JpEg'; //gepj.fig.dc.ba
    $str2 = strrev($filename);//strrev反转字符串
    $num = strpos($str2, '.');
    echo strtolower(strrev(substr($str2, 0,$num)));//jpeg
Nach dem Login kopieren

trim移除字符串两侧的字符

  $str = "\n\n\t\tABC\t\t";
    echo trim($str);//ABC
Nach dem Login kopieren

md5()加密

    $str = 'abc';
    echo md5($str);//900150983cd24fb0d6963f7d28e17f72
Nach dem Login kopieren

格式化字符串

    $number = 5;
    $str = 'shanghai';
    $txt = sprintf('there are %d million cars in %s',$number,$str);
    echo $txt;//there are 5 million cars in shanghai
    $number = 123;
    $txt = sprintf("带有两位小数的结果是:%1\$.2f,\n不带小数的是:%1\$d",$number);
    echo $txt;//带有两位小数的结果是:123.00,不带小数的是:123
Nach dem Login kopieren

htmlspecialchars特殊字符转为HTML实体

    $str = "A>B,B
Nach dem Login kopieren

通过str_replace进行转换

    $str1 = str_replace('&', '&', $str); //必须是第一阶梯
    $str2 = str_replace('>', '>', $str1);
    $str2 = str_replace('<', '<', $str2);
    $str2 = str_replace('"', '"', $str2);
    $str2 = str_replace('\'', ''', $str2);
    echo $str2;//A>B,B<C,Tom&John,He said:"I'm OK"
Nach dem Login kopieren

str_ireplace不区分大小写

  $str = 'javascript';
    echo str_ireplace('A', 'b', $str);//jbvbscript
Nach dem Login kopieren

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

    $str = 'abcdefghijklmnopqrstuvwxyz';
    $str = str_shuffle($str);
    echo substr($str,0,4);//drif
Nach dem Login kopieren

strlen获得字符长度

  $str1 = NULL;//0
    $str2 = 'AB';//2
    $str3 = '中国';//6 一个中文3个字符
    echo strlen($str1) , strlen($str2) , strlen($str3);
Nach dem Login kopieren

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

    $str1 = 'javascript';
    $str2 = 'A';
    var_dump(stripos($str1, $str2)); //int(1)
Nach dem Login kopieren

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

  $str1 = 'abcdcef';
    $str2 = 'c';
    echo strrchr($str1, $str2);//cef
Nach dem Login kopieren

获取扩展名

    $filename = 'a.bc.cd.png';
    echo substr(strrchr($filename, '.'),1);//png
Nach dem Login kopieren

strtoupper转大写

strtolower转小写

    $str1 = 'html';
    $str2 = 'PHP';
    echo strtoupper($str1) , strtolower($str2);//HTMLphp
Nach dem Login kopieren

ucfirst句子首字母大写

ucwords单词首字母大写

    $str3 = 'this is a test';
    echo ucfirst($str3) , ucwords($str3);
Nach dem Login kopieren

substr截取字符串

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

    $str = 'javascript';
    echo strlen($str);//10
    echo substr($str, 0,4) ;//java
    echo substr($str, 4);//script
    echo substr($str, -2);//pt   -2=10-2=8
    echo substr($str, -5,-2) , "\n";//cri   -5,-2=5,8
Nach dem Login kopieren

将字符串转为Zend_Controller_Front

   $str = 'ZenD_CONTRollER_FronT';
    //1.转换小写
    $str1 = strtolower($str);
    //2.将下划线替换成空格
    $str2 = str_replace('_', ' ', $str1);
    //3.通过ucwords进行首字母大写操作
    $str3 = ucwords($str2);
    //4.将空格替换成下划线
    $str4 = str_replace(' ', '_', $str3);
    echo $str4;//Zend_Controller_Front
Nach dem Login kopieren
floor() ceil()
    $x = 2.7;
    $y = 3.01;
    echo floor($x) , '

';//2 向下取整 echo ceil($y) , '

';//4 向上取整
Nach dem Login kopieren

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

  z = ceil(X/Y);
Nach dem Login kopieren

fmod()对浮点数取模

    echo fmod(7.8,3) , '
';//1.8
Nach dem Login kopieren

对整数取模

    echo 7.8 % 3 ; //整数余数的操作//1
Nach dem Login kopieren

格式化数字

    $x = 7896.827;
    echo number_format($x) , '

';//7,897 echo number_format($x,2) , '

';//7,896.83
Nach dem Login kopieren

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

    echo pow(2,3);//8
    echo sqrt(4) ;//2
Nach dem Login kopieren

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

    echo rand(50,80);
    echo mt_rand(10,99);
Nach dem Login kopieren

生成四位数随机验证码

  $chars = 'abcdefghijlmnopqrstuvwxyz789654321';
    $len = strlen($chars);
    for($i=0;$i<4;$i++){
        $char .= substr($chars,mt_rand(0,$len-1),1);
    }
    echo $char;
Nach dem Login kopieren

round()四舍五入

    $x = 7.238;
    echo round($x);//7
    echo round($x,2);//7.24
Nach dem Login kopieren

strtotime字符串转时间

   echo '当前日期:'  , date('Y-m-d') , "\n";//2020-01-10
    echo '下个月的日期:' , date('Y-m-d', strtotime('1 month')) , "\n";//2020-02-10
    echo '上个月最后一天:' , date('Y-m-d H:i:s',strtotime('last day of -1 month')) , "\n";//2019-12-31 10:39:12
    echo '上个月最后一天零点:' , date('Y-m-d H:i:s', strtotime("midnight last day of -1 month")) , "\n"; //2019-12-31 00:00:00
    echo '昨天零点:' ,  date('Y-m-d H:i:s',strtotime('yesterday')) , "\n";//2020-01-09 00:00:00
    echo '现在:' ,  date('Y-m-d H:i:s',strtotime('now')) , "\n";//2020-01-10 10:39:12
    echo '三个星期之间的时间戳是:' ,  strtotime('-3 weeks');//三个星期之间的时间戳是:1576810790
    echo (time() -  strtotime('-3 weeks'))/86400 ;//21  间隔时间
    echo '上个月:'.date('Y-m-d H:i:s',strtotime('-1 month')) ; //上个月:2019-12-10 10:59:50
    echo '上个月的第一天:'.date('Y-m-d H:i:s',strtotime('first day of -1 month'));//上个月的第一天:2019-12-01 10:59:50
Nach dem Login kopieren

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

    print_r(getdate());
    //Array
    //(
    //    [seconds] => 3
    //    [minutes] => 42
    //    [hours] => 10
    //    [mday] => 10
    //    [wday] => 5
    //    [mon] => 1
    //    [year] => 2020
    //    [yday] => 9
    //    [weekday] => Friday
    //[month] => January
    //[0] => 1578624123
    //)
Nach dem Login kopieren

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

    echo microtime();//0.41369400 1578624195
Nach dem Login kopieren

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

  echo microtime(true);//1578624195.4137
Nach dem Login kopieren

计算程序运行时间

    $start = microtime(true);
    $sum = 0;
    for ($i=0; $i <1000000 ; $i++) { 
        $sum += $i;
    }
    $end = microtime(true);
    echo  '共花费' , round($end - $start,3) , '秒';//共花费0.016秒
Nach dem Login kopieren
time()
    echo time() ;//1578625294
    echo '当前的日期时间是:' , date('Y-m-d H:i:s') ;//当前的日期时间是:2020-01-10 11:01:34
    echo '昨天的日期时间是:' , date('Y-m-d H:i:s',time()-86400) ; //24*60*60 //昨天的日期时间是:2020-01-09 11:01:34
Nach dem Login kopieren

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

    echo uniqid();//5e17e94f8a19b
    echo uniqid('abc');//abc5e17e96c1771e
    echo uniqid(microtime());//0.09603300 15786253885e17e96c17727
    echo uniqid(microtime() . mt_rand()); //mt_rand(100,999);//0.09604200 15786253884744704985e17e96c1772f
    //uuid 8-4-4-4-12 = 32
    echo md5(uniqid(microtime() . mt_rand()));//cf6333288fcb04f60fbbedafd127201e
Nach dem Login kopieren
session
    session_start();
    echo session_id();//bp99jhu204h6vi214ttgcjce80
Nach dem Login kopieren

更多相关php知识,请访问php教程

以上是PHP自定义函数+系统函数库(代码示例)的详细内容。更多信息请关注PHP中文网其他相关文章!

Verwandte Etiketten:
php
Quelle:cnblogs.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!