zoukankan      html  css  js  c++  java
  • PHP作用域和文件夹操作

    1.作用域

         1.1变量作用域

         1.全局变量:在函数外面

          2.局部变量:在函数里面,默认情况下,函数内部是不会访问函数外部的变量

          3.超全局变量:可以在函数内部和函数外部访问

          在函数内部访问全局变量

    <?php
    $num=10;  //全局变量
    function fun() {
        echo $GLOBALS['num'];    //输出全局的$num
    }
    fun();

             global关键字

    <?php
    $num=10;
    function fun() {
        global $num;   //将全局变量的$num的地址引入到函数内部  相当于$num=&GLOBALS['num']
        echo $num;    //10
        $num=100;
    }
    fun();
    echo '<br>';
    echo $num;    //100

              小结:

              1.$GLOBALS保存的是全局变量的所有的值

             2.global用于创建一个全局变量的引用

             3.常量是没有作用域的概念

             1.2静态变量(static)

             静态变量一般指的是静态局部变量

             静态变量只初始化一次

    <?php
    function fun() {
        static $num=10;    //静态变量只初始化一次,调用完毕吧不销毁,第二次调用的时候就不再初始化
        $num++;
        echo $num,'<br>';
    }
    fun();    //11
    fun();    //12

                常量和静态变量的区别:

              1.常量和静态变量都是初始化一次

               2.常量不能改变值,静态变量可以改变值

               3.常量没有作用域,静态变量有作用域

               1.3匿名函数use()

              默认情况下,函数内部不能访问函数外部的变量,但在匿名函数中,可以通过use将外部变量引入匿名函数中

    <?php
    $num=10;
    $fun=function() use($num) {  //将$num引入到匿名函数中,引用多个变量时用逗号分隔开
        echo $num;     
    };
    $fun();   //10

    2.文件夹操作:

               2.1创建文件夹(mkdir(路径,权限,是否递归创建))

    <?php
    //1、创建目录
    //mkdir('./aa');    //创建aa文件夹
    //mkdir('./aa/bb');    //在aa目录下创建bb(aa目录必须存在)
    mkdir('./aa/bb/cc/dd',0777,true);    //递归创建

                   2.2删除文件夹(rmdir())

    //remove:移除
    
    rmdir('./aa/bb/cc/dd');    //删除dd文件夹

                    注意:

                  1、删除的文件夹必须是空的

                  2、PHP基于安全考虑,没有提供递归删除。

                  2.3重命名文件夹(rename(旧名字,新姓名))

    rename('./aa','./aaa');    //将aa改为aaa

                    2.4是否是文件夹(is_dir())

    echo is_dir('./aaa')?'  是文件夹':'不是文件夹';

                     2.5打开文件夹、读取文件夹、关闭文件夹

    $folder=opendir('./');    //打开目录
    //var_dump($folder);        //resource(3) of type (stream) 
    while($f=readdir($folder)){    //读取文件夹
        if($f=='.' || $f=='..')
            continue;
        echo iconv('gbk','utf-8',$f),'<br>';  //将gbk转成utf-8
    }
    closedir($folder);        //关闭文件夹

                     小结:

                    1、opendir()返回资源类型
                    2、每个文件夹中都有.和..
                    3、iconv()用来做字符编码转换

  • 相关阅读:
    BZOJ3498PA2009 Cakes——三元环
    黑科技之三元环讲解
    BZOJ4317Atm的树&BZOJ2051A Problem For Fun&BZOJ2117[2010国家集训队]Crash的旅游计划——二分答案+动态点分治(点分树套线段树/点分树+vector)
    BZOJ2463[中山市选2009]谁能赢呢?——博弈论
    BZOJ2275[Coci2010]HRPA——斐波那契博弈
    BZOJ2281[Sdoi2011]黑白棋&BZOJ4550小奇的博弈——DP+nimk游戏
    BZOJ3435[Wc2014]紫荆花之恋——动态点分治(替罪羊式点分树套替罪羊树)
    Trie树学习总结
    kmp学习小结
    Hash学习小结
  • 原文地址:https://www.cnblogs.com/shineguang/p/10977034.html
Copyright © 2011-2022 走看看