В чем разница и в каком случае надо использовать ту или иную функцию было бы хорошо если просветили

Спустя 4 минуты, 47 секунд (18.07.2011 - 20:17) Haotarez написал(а):
все просто - include и require - это одно и тоже за исключением случая когда запрашиваемый файл не найден. В таком случае скрипт после include продолжит работу, а после require остановит выполнение скрипта.
Говорящие постфиксы once означают выполнение включения всего один раз
Говорящие постфиксы once означают выполнение включения всего один раз
Спустя 6 минут, 18 секунд (18.07.2011 - 20:23) Guest написал(а):
а зачем вот нужно выбирать файлы скажем несколько раз?? ну вот для include?
прикрепил я файл в нем функции, тоесть к этому файлу можно обратиться будет много раз? а вот если я бы если include_once использовал то скажем взял бы одну функцию один файл и все, или как вот усвоить не могу этот момент что значит многократное включение файла а что значит однократное???
кстати спасибо за простое объяснение
прикрепил я файл в нем функции, тоесть к этому файлу можно обратиться будет много раз? а вот если я бы если include_once использовал то скажем взял бы одну функцию один файл и все, или как вот усвоить не могу этот момент что значит многократное включение файла а что значит однократное???
кстати спасибо за простое объяснение

Спустя 3 минуты, 59 секунд (18.07.2011 - 20:27) Haotarez написал(а):
Цитата |
а зачем вот нужно выбирать файлы скажем несколько раз?? ну вот для include? |
допустим есть файл в нем функция которая должна быть в последствии перегружена - c include_once не получится ее перегрузить
Спустя 33 минуты, 10 секунд (18.07.2011 - 21:00) alex12060 написал(а):
Ну допустим есть 2 файла -
1.php
и
2.php
и есть главный файл - index.php
Пробуем с require() и include()
Тут вот что:
подключаются 2 файла, но а 3-го - нет, но работа скрипта не прекращается и страница отрабатывает полностью. Т.е, подключение в include идет сразу, раз за разом.
В ХТМЛ будет так:
А если вот так:
Функция будет работать, подключая все, что доступно. Но если функция видит, что файла нет, то выводит ошибку и аварийно завершает работу. Т.е вывод будет таким:
Вот в этом глобальное отличие 2-х функций.
Рассмотр постфикса _once()
Вот те же 2 примера у нас. once() с англ - единожды. Т.е функция подключается (файл) только 1 раз. Если сделать так:
То выведется вот это:
Но а если так:
то выведется вот это:
Как видно, вывелось 1 раз, хотя подключали 2 раза. Функция require_once() работает так-же, как и include_once(), только, как было выше сказано, если нет файла, скрипт аварийно завершает работу.
1.php
<h2>test</h2><br />
и
2.php
<h1>TEST</h1><br />
и есть главный файл - index.php
Пробуем с require() и include()
<?php
include('1.php');
include('2.php');
include('3.php'); // Нету такого файла
echo '<i>I work!</i>';
?>
Тут вот что:
подключаются 2 файла, но а 3-го - нет, но работа скрипта не прекращается и страница отрабатывает полностью. Т.е, подключение в include идет сразу, раз за разом.
В ХТМЛ будет так:
<h2>test</h2><br />
<h1>TEST</h1><br />
<i>I work!</i>
А если вот так:
<?php
require('1.php');
require('2.php');
require('3.php'); // Нету такого файла
echo '<i>I work!</i>';
?>
Функция будет работать, подключая все, что доступно. Но если функция видит, что файла нет, то выводит ошибку и аварийно завершает работу. Т.е вывод будет таким:
<h2>test</h2><br />
<h1>TEST</h1><br />
<!-- тут ошибка -->
Вот в этом глобальное отличие 2-х функций.
Рассмотр постфикса _once()
Вот те же 2 примера у нас. once() с англ - единожды. Т.е функция подключается (файл) только 1 раз. Если сделать так:
<?php
include('1.php');
include('1.php');
include('3.php'); // Нету такого файла
echo '<i>I work!</i>';
?>
То выведется вот это:
<h2>test</h2><br />
<h2>test</h2><br />
<i>I work!</i>
Но а если так:
<?php
include_once('1.php');
include_once('1.php');
include('3.php'); // Нету такого файла
echo '<i>I work!</i>';
?>
то выведется вот это:
<h2>test</h2><br />
<i>I work!</i>
Как видно, вывелось 1 раз, хотя подключали 2 раза. Функция require_once() работает так-же, как и include_once(), только, как было выше сказано, если нет файла, скрипт аварийно завершает работу.
Спустя 16 минут, 21 секунда (18.07.2011 - 21:17) include_require_user написал(а):
Спасибо огромное теперь ясно

Спустя 3 минуты, 44 секунды (18.07.2011 - 21:20) Haotarez написал(а):
Фиговый из меня разъяснитель

Спустя 2 часа, 50 минут, 50 секунд (19.07.2011 - 00:11) inpost написал(а):
Дважды никогда не за чем делать.
Если ты подгружаешь классы, функции, то их необходимо объявить лишь 1 раз, значит _once, если необходимо HTML страницу, то тут любой шаблонизатор будет лучше, чем много раз вызывать include. То есть вообще нет смысла использовать без _once, по крайней мере я его не вижу.
А вот отличия уже выше сказали.
Если ты подгружаешь классы, функции, то их необходимо объявить лишь 1 раз, значит _once, если необходимо HTML страницу, то тут любой шаблонизатор будет лучше, чем много раз вызывать include. То есть вообще нет смысла использовать без _once, по крайней мере я его не вижу.
А вот отличия уже выше сказали.