繁体   English   中英

在2个单独的MySQL连接中是否包含include_once <?php ?> 标签只会连接一次?

[英]Does include_once for MySQL connection in 2 separate <?php ?> tags will connect only once?

在这种情况下,我使用:

<?php 
include_once 'connect.php'; # connect with MySQL database
# some PHP code
?>

<!-- some HTML code -->

<?php 
# here PHP code wants to use MySQL connection opened before
?>

我是否应该在第二个PHP标签中包含include_once?

include_once语句在脚本执行期间包含并评估指定的文件。 这是一种与include语句相似的行为,唯一的区别是,如果已经包含了文件中的代码,则不会再次包含它。 顾名思义,它将仅包含一次。

因此,如果connect.php一旦被包含,它将不再被包含

例如

<?php 
     include(a.php)  //it will include a.php
     include(b.php)  //it will include b.php
     include(a.php)  //it will include a.php again
?>

<?php 
     include_once(a.php)  //it will include a.php
     include_once(b.php)  //it will include b.php
     include_once(a.php)  //does nothing
?>

如果文件在同一请求/页面中,则无需重新添加文件。

同样,使用include_once将阻止您包含已经包含的文件。

您可以自由地再次使用connect.php先前包含的变量和连接

关闭PHP标记时,您不会关闭会话,并且所包含的代码将在您选择打开或关闭的所有php标记中保持可用。

- index.php
  - includes once connect.php
  - includes once foo.php
  - includes bar.php

- foo.php
  - Contains scope from connect.php

- bar.php
  - Contains scope from connect.php
  - Contains scope from foo.php

include和include_once之间的唯一区别是,如果您多次包含同一文件,则该文件将仅包含一次。

示例包括

<?php
    include ( 'connect.php' ); // Includes an evaluates code.
    include ( 'connect.php' ); // Includes an evaluates code.
    include ( 'connect.php' ); // Includes an evaluates code.
?>

示例Include_once

<?php
    include_once ( 'connect.php' ); // Includes an evaluates code.
    include_once ( 'connect.php' ); // Does nothing.
    include_once ( 'connect.php' ); // Does nothing.
?>

如果您的应用程序使用模块(其中包括库),这将很有用。 为了确保它不会多次包含同一库,当只需要一次时,可以使用include_once。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM