Главная
домен в подарок! подробнее

каталог сайтов www.poiu.ru закрыт. копия сайта www.myphp.net.ru сделана мной без согласия автора, подробнее тут


require_once

require_once()

Функция require_once() заменяет себя указанным файлом, подобно процессору C #include, и в этом отношении схожа с функцией require(). Главное отличие состоит в том, что в цепочке подключения использование require_once() будет гарантировать, что код будет добавлен в ваш скрипт только однажды.  

Например, если вы создаете два следующих файла: utils.inc и foolib.inc

Пример 11-3. utils.inc

<?php
define("PHPVERSION", floor(phpversion()));
echo "GLOBALS ARE NICE\n";
function goodTea()
{
    return "Oolong tea tastes good!";
}
?>

Пример 11-4. foolib.inc

<?php
require ("utils.inc");
function showVar($var)
{
    if (PHPVERSION == 4) {
        print_r($var);
    } else {
        var_dump($var);
    }
}

// связка других функций ...
?>
Затем вы пишите скрипт cause_error_require.php

Пример 11-5. cause_error_require.php

<?php
require("foolib.inc");
/* the following will generate an error */
require("utils.inc");
$foo = array("1",array("complex","quaternion"));
echo "this is requiring utils.inc again which is also\n";
echo "required in foolib.inc\n";
echo "Running goodTea: ".goodTea()."\n";
echo "Printing foo: \n";
showVar($foo);
?>
Когда вы попытаетесь выполнить последний пример, конечный вывод будет (используя PHP 4.01pl2):

GLOBALS ARE NICE
GLOBALS ARE NICE

Fatal error:  Cannot redeclare goodTea() in utils.inc on line 5

Модифицировав foolib.inc и cause_errror_require.php, используя require_once() вместо require() и переименовав последнее в avoid_error_require_once.php, мы имеем:

Пример 11-6. foolib.inc (fixed)

...
require_once("utils.inc");
function showVar($var)
{
...

Пример 11-7. avoid_error_require_once.php

...
require_once("foolib.inc");
require_once("utils.inc");
$foo = array("1",array("complex","quaternion"));
...
Теперь мы будем иметь следующее (используя PHP 4.0.1pl2):

GLOBALS ARE NICE
this is requiring globals.inc again which is also
required in foolib.inc
Running goodTea: Oolong tea tastes good!
Printing foo:
Array
(
    [0] => 1
    [1] => Array
        (
            [0] => complex
            [1] => quaternion
        )

)

Смотрите также: require(), include(), include_once(), get_required_files(), get_included_files(), readfile(), и virtual().

<-Назад

Список всех функций

Если вы заметили ошибку, неточность, либо хотите опубликовть свой перевод неуказанных в разделе функций, пожалуйста, напишите по этому адресу.