PHP基础 —— 引入php文件

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脚本的执行

结束语

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值