zoukankan      html  css  js  c++  java
  • require和include的区别(PHP)

    < DOCTYPE html PUBLIC -WCDTD XHTML StrictEN httpwwwworgTRxhtmlDTDxhtml-strictdtd>

    概括:require 一次包含以后,下次的代码相当于放在文件中了,而include是每次执行都要解释一次,也就是再去读那个文件一次。

    下面的示例:

    con_db.php

    <?php
    $dbh = mysql_connect('localhost','','');
    mysql_select_db('admreqs');
    ?>

    在实际应用时,我们可以在程序中调用这个文件。

    如require("con_db.php")或include("con_db.php)

    这时,两个函数的效果是差不多的。

    但如果这样用

    filename.php

    <?php
    require("con_db.php")
    function myfun($par1,$par2)
    {包含对数据库处理的语句}
    .....
    myfun($par1,$par2);
    .....
    myfun($p1,$p2);
    ?>

      文件到myfun处将不能继续执行,因为函数里无法得到外面的变量(include也是一样的)。除非把$dbh作为一个变量传给函数。这又增加了调用函数的复杂度。

      我们可以通过把require或include放在函数里面来解决这个问题。

      如果用include,文件的第一个函数调用处将顺利通过,但第二个调用将无法执行,原因是不能在没有关闭数据库时在打开一次,也就是说,con_db.php执行了两次。将include换成require,一切都正常。

      也就是说,require类似于一次预扫描,在程序执行时,无论在函数里或是函数外,都将先把require的文件执行,且只执行一次。而include则是每执行一次就调用一次文件,即这次执行后,下次再执行执行到这里,仍将再执行一次。

    因此,如果在一个循环中,某些语句你只想执行一次,那你用require包括它们就可以了。

  • 相关阅读:
    Mayan游戏 (codevs 1136)题解
    虫食算 (codevs 1064)题解
    靶形数独 (codevs 1174)题解
    黑白棋游戏 (codevs 2743)题解
    神经网络 (codevs 1088) 题解
    The Rotation Game (POJ 2286) 题解
    倒水问题 (codevs 1226) 题解
    银河英雄传说 (codevs 1540) 题解
    生日蛋糕 (codevs 1710) 题解
    第一章 1.11 高阶函数
  • 原文地址:https://www.cnblogs.com/netcorner/p/2912049.html
Copyright © 2011-2022 走看看