美文网首页
PHP基础 —— 引入php文件

PHP基础 —— 引入php文件

作者: WhiteStruggle | 来源:发表于2020-07-18 08:41 被阅读0次

    include

    语句包含并运行指定文件。

    • 在文件被包含时,其中所包含的代码继承了include所在行的变量范围
    • 调用文件在该行处可用的任意变量在被调用文件中也都可以使用
    • 被包含文件先按参数给出的路径寻找,如果没有给出目录(只有文件名)时则按照 include_path 指定的目录寻找。
    //__FILE__ 获取本文件路径
    //dirname() 获取文件路径的目录
    <?php
        $a = $b =5;
        include dirname(__FILE__)."\\5.php";;
        a();
    ?>
    
    <?php
        function a(){
            echo "good";
        }
        $c = $a +$b;
        echo $c;//10
    ?>
    
    <?php
        $a = $b =5;
        include dirname(__FILE__)."\\5.php";
        include dirname(__FILE__)."\\5.php";//报错,然后后面的都没有执行
        a();
    ?>
    

    include_once

    在脚本执行期间包含并运行指定文件

    与include类似,唯一区别是如果该文件中已经被包含过,则不会再次包含。

    <?php
        $a = $b =5;
        include_once dirname(__FILE__)."\\5.php";
        include_once dirname(__FILE__)."\\5.php";//不会运行
        a();
    ?>
    

    require

    require与include几乎完全一样,但处理失败时不同

    • require会产生致命错误,阻止代码继续执行
    • include只产生警告,代码会继续执行
    <?php
        $a = $b =5;
        require dirname(__FILE__)."\\5.php";
        require dirname(__FILE__)."\\5.php";//报错,然后后面的都没有执行
        a();
    ?>
    

    require_once

    require_once与require完全相同,唯一区别是PHP会检查该文件是否已经被包含过,若包含则不会再次包含

    <?php
        $a = $b =5;
        require_once dirname(__FILE__)."\\5.php";
        require_once dirname(__FILE__)."\\5.php";
        a();
    ?>
    

    goto

    goto 操作符可以用来跳转到程序中的另一位置。该目标位置可以用目标名称加上冒号来标记,而跳转指令是 goto 之后接上目标位置的标记。

    • PHP 中的 goto 有一定限制,目标位置只能位于同一个文件和作用域,也就是说无法跳出一个函数或类方法,也无法跳入到另一个函数。也无法跳入到任何循环或者 switch 结构中。
    • 可以跳出循环或者 switch,通常的用法是用 goto 代替多层的 break。

    declare

    declare 结构用来设定一段代码的执行指令。

    局部作用域的declare:

    <?php
    declare(ticks=1) {
        //需要执行的脚本
    }
    ?>
    

    全局declare:

    <?php
        declare(ticks=1);
        //需要执行的脚本
    ?>
    

    register_tick_function()

    注册一个函数以在每个刻度上执行

    declare(ticks=1) 和 register_tick_function() 通常配合使用,可以实现控制某段代码执行时间

    register_tick_function ( callable $function ,[ mixed $arg], [ mixed $... ] ) : bool
    
    $function —— 函数名称为字符串或由对象和方法组成的数组。
    

    成功时返回 true, 或者在失败时返回 false。

    register_tick_function('函数名', 函数的参数·····);
    

    unregister_tick_function()

    取消注册要在每个刻度上执行的功能

    unregister_tick_function ( string $function_name ) : void
    
    function_name —— 函数名称,以字符串形式。
    

    取消注册以function_name命名的函数,以便在调用滴答时不再执行。

    使用

    • Tick(时钟周期)是一个在 declare 代码段中解释器每执行 N 条可计时的低级语句就会发生的事件。N 的值是在 declare 中的 directive 部分用 ticks=N 来指定的。

    • 在每个 tick 中出现的事件是由 register_tick_function() 来指定的。

    Zend引擎每执行1条低级语句就去执行一次 register_tick_function() 注册的函数。
    可以粗略的理解为每执行一句php代码(例如:$num=1;)就去执行下已经注册的tick函数。

    <?php
        declare(ticks=1){
            //获取函数开始的时间
            $startTime = time();
            
            function well($startTime){
                //函数执行的时间
                $curTime = time();
                
                //若执行时间从开始到现在,大于5秒节执行if语句
                $times = $curTime - $startTime;
                if(($times) > 5)
                
                {
                    // die阻止php运行,因此结束运行
                    echo 'game over<br>';
                    die("{$times}<br>{$curTime}");
                }
            }
            //使用 register_tick_function()注册函数,传递参数函数 —— 开始时间$startTime
            register_tick_function('well',$startTime);
            
            //while死循环
            while (true) {
                //每次执行,都会延迟一秒
                sleep(1);
                
                //获取当前时间
                $now_time = time();
                
                //输出当前时间
               echo "{$now_time}<br>";
            }
        };
    ?>
    
    
    运行结果:
        1587217881
        1587217882
        1587217883
        1587217884
        1587217885
        game over
        6
        1587217886
    

    从结果可以看出,当执行一次简单的语句就会触发 register_tick_function()注册函数

    while循环每次输出,都经历了一秒,当经历5秒,执行die结束php脚本的执行

    结束语

    这些基础,已经可以写出一些优秀的作品,还是 类与对象 的一大块,需要继续的探索,这些都是个人学习记录的笔记,虽然可能不是很全面,希望对在读的你有所帮助!!!

    相关文章

      网友评论

          本文标题:PHP基础 —— 引入php文件

          本文链接:https://www.haomeiwen.com/subject/xwhxkktx.html