zoukankan      html  css  js  c++  java
  • PHP作用域 递归 包含文件 错误处理 文件变成汇总

    1.2 作用域
    ​ 1.2.1 变量作用域

    ​ 1、局部变量:在函数外面

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

    ​ 3、超全局变量:可以在函数的内部和外部访问。

    <?php
    $_POST['num']=10;
    function fun(){
        echo $_POST['num'];
    }
    fun();
    ?>
    
    <?php
    $num=10;
    function fun(){
        echo $GLOBALS['num'];
    }
    fun();
    

    global关键字

    小结:

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

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

    注意:

    ​ 常量没有作用域的概念

    1.2.1 静态变量(static)

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

    ​ 静态变量只初始化一次。

    常量和静态变量的区别

    ​ 1、常量和静态变量都是初始化一次。

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

    ​ 3、常量没有作用域,静态变量有作用域。

    1.2.3 匿名函数use()

    <?php
    $num=10;
    $fun=function() use($num){	//将函数引入到匿名函数中
        echo $num;
    }
    fun();	//10
    

    思考:如何在函数内部访问函数外部变量

    ​ 1、使用超全局变量

    ​ 2、$GLOBALS

    ​ 3、global

    ​ 4、use将函数外部变量引入到匿名函数内部

    1.3 递归

    函数内部自己调用自己

    递归有两个元素,一个是递归点(从什么地方递归),第二递归出口

    <?php
        function printer($num){
        echo $num.'&nbsp;';
        if($num==1)	//递归出口
            return;
        printer($num-1);	//递归点
        
    }
    printer(9);	//9 8 7 6 5 4 3 2 1
    

    小结:尽量少用递归,因为递归需要用到现场保护,现场保护是需要消耗资源的。

    1.4 包含文件

    ​ 1.4.1 包含文件的方式

    ​ 1、require:包含多次

    ​ 2、include:包含多次

    ​ 3、require_once:包含一次

    ​ 4、include_once:包含一次

    <?php
        include './head.html';	//包含文件
    	include_once './head.html';
    

    小结:

    1、require遇到错误抛出error类别的错误,停止执行

    2、include遇到错误抛出warning类型的错误,继续执行

    3、require_once、include_once只能包含一次

    4、HTML类型的包含页面中存在PHP代码,如果包含到PHP中是可以被执行的

    5、包含文件相当于把包含文件中的代码拷贝到主文件中执行,魔术常量除外,魔术常量获取的是所在文件的信息。

    6、包含在编译时不执行、运行时加载到内存、独立编译包含文件

    1.4.2 包含文件的路径

    1.5 错误处理

    1.5.1 错误的处理级别

    ​ 1、notice:提示

    ​ 2、warning:警告

    ​ 3、error:致命错误

    notice和warning报错后继续执行,error报错后停止执行

    1.5.2 错误的提示方法

    ​ 方法一:显示在浏览器上

    ​ 方法二:记录在日志中

    1.5.3 与错误处理有关的配置

    在php.ini中

    1.5.4 自定义错误处理(了解)

    通过trigger_error产生一个用户级别的error/warning/notice信息

    注意:用户级别的错误的常量名中一定带有USER。

    定义错误处理函数

    function error(){
        echo '这是自定义错误处理';
    }
    set_error_handle('error');	//注册错误处理函数,只要有错误就会自动的调用错误处理函数
    echo $num;
    

    1.6 文件变编程

    ​ 1、创建文件夹

    ​ mkdir:创建

    <?php
        //1、创建目录
        //mkdir('./aa/bb');
        mkdir('./aa/bb/cc/dd',0777,true);	//递归创建
    

    ​ 2、删除文件夹

    ​ rmdir()

    提醒:

    删除的文件夹必须是空的

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

    ​ 3、重命名文件夹 rename()

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

    ​ 4、是否是文件夹 is_dir()

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

    ​ 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
    }
    
    for(::){
        if($f=readdir($folder)){
            if($f=='.' || $f=='..')
                continue;
            echo iconv('gbk','utf-8',$f),'<br>';	//将gbk转换为utf-8
        }else{
            break;
        }
    }
    closedir($folder);	//关闭文件夹
    

    小结:

    1、opendir()返回资源类型
    
    2、每个文件夹中都有.和..
    
    3、iconv()用来做字符编码转换
    
  • 相关阅读:
    New Skateboard
    Mike and strings
    C语言异或运算在程序设计中的妙用
    快速排序
    贪心算法
    快速排序过程分析
    深度搜索C语言伪代码
    matlab 中“newff” 函数的参数设置
    一维小波分解与去噪重构
    matlab绘图(详细)(全面)
  • 原文地址:https://www.cnblogs.com/gerenboke/p/13336569.html
Copyright © 2011-2022 走看看