| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > PHP: Общие вопросы > include файлов ? как ? |
| Автор: Lexxx_HU 16.12.2007, 21:29 | ||
| здрасти всем .. вопрос вот какой .. видел множество реализаций включения файлов .. какой из них правильный ? а какой следует избегать ? и чем они отличаются друг от друга ? прведу примеры включения одного и того же файла ..
|
| Автор: gta4kv 16.12.2007, 21:40 | ||
Да без разницы..
|
| Автор: Feldmarschall 16.12.2007, 21:58 |
| Это интересный вопрос. интересен он тем, что к собственно оператору include можно отнести только скобки. Остальные элементы выражения относятся к совем другим разделам программирования - синтаксису строк в пхп и основам работы с файловой системой. Скобки необязательны. Вообще, я считаю, что они не относятся к include, а если используются, то обрамляют оператор, который является аргументом. Но не возьмусь утверждать наверняка. Чем отличается синтаксис описания строк в программе, можно посмотреть в мануале - http://php.net/types.string В данном случае - ничем. Чем отличаются имена файлов, можно почитать в любом учебнике "ПК для чайников" test.php - файл лежит в текущей директории /test.php - файл лежит в корне диска ../test.php - test.php лежит в директории выше текущей |
| Автор: Lexxx_HU 16.12.2007, 22:15 |
то есть будет инклудится файл находящийся в корне сайта ... не зависимо от того откуда вызывает ? |
| Автор: Feldmarschall 16.12.2007, 22:20 |
| а там, без точки. а мне сослепу точка примерещилась. Lexxx_HU, да, независисмо. Только в корне не сайта, а диска. |
| Автор: flashaa 16.12.2007, 23:39 |
| / - в юниксе корень, так же разделитель папок. . - и в винде и в юниксе означает текущий каталог. ./ - означает текущий каталог. Например если текущий каталог = /home/123, то ./ будет воспринято как /home/123/ При этом если путь начинается со слеша , то в юниксе - это значит корень всего диска. Там нет с:, d:, а есть сразу папки /home/, /bin/, /etc/ . То что файловая система выглядит как будто все лежит в одной папке /, не мешает ей на самом деле быть распределенной по нескольким дискам и даже нескольким файловым системам. |
| Автор: bars80080 17.12.2007, 10:17 | ||||
по-моему, есть существенная разница между
главнокомандующий, почему? |
| Автор: Feldmarschall 17.12.2007, 10:23 |
| Да ладно! Какая там разница? И что ты имеешь в виду? разницу между 'test.php' и "test.php" или между include 'test.php' и include "test.php"? Добавлено через 1 минуту и 49 секунд ты про "$test.php"? Ну так я написал, что в данном случае - ничем. и дал ссылку на подробное описание всех нюансов. а больше я никаких различий в упор не вижу. |
| Автор: bars80080 17.12.2007, 11:27 |
| разница как раз в 'test.php' и "test.php", если мы обозначаем строку одинарными кавычками, php не ищет в ней эти переменные, то есть расходует меньше ресурсов, много или мало не важно, главное меньше |
| Автор: NNaarreekk 17.12.2007, 22:56 |
| Ну раз тема открыта может тогда поговорим о разнице include() i require()!! Есть ли разница? |
| Автор: Feldmarschall 17.12.2007, 22:59 |
| Есть. Отличия описаны в документации. Хотя с точки зрения программиста они, пожалуй, несущественные. |
| Автор: bars80080 18.12.2007, 10:55 |
| основное различие, насколько я понял: include - интерпретация файла только когда ветка программы задействет этот инклуд require - интерпретация как и у функций сразу, даже если он находится в недействующей на данный момент ветке программы а посему, при отладке лучше использовать require, чтобы сразу все ошибки лезли , а при нормальной работе include, дабы задействовать меньше ресурсов моё мнение |
| Автор: Feldmarschall 18.12.2007, 10:57 |
| bars80080, нет, ты ошибаешься. обнови свою документацию. |
| Автор: Mal Hack 18.12.2007, 11:04 |
| Различия функциональные были указаны верно. С точки зрения использования была допущена ошибка, отладка ту не при чем. Все зависит от того, будет ли подключаемый программный кусок кода подключаться всегда или в зависимости от каких-то обстоятельств... |
| Автор: Feldmarschall 18.12.2007, 11:08 |
| извините. http://ru2.php.net/include/ где здесь написано про момент интерпретации файла? |
| Автор: Mal Hack 18.12.2007, 11:13 |
| Feldmarschall, а где здесь написано про функционал? А он из практики... |
| Автор: bars80080 18.12.2007, 11:17 |
| блин, вынужден согласиться, разницы нет а эту тему я вроде вычитывал у Котерова... откатываю назад своё высказывание |
| Автор: Feldmarschall 18.12.2007, 11:18 |
| Здесь написано identical in every way every way, насколько мне позволяет мой английский, включает и функционал. Насколько я понимаю, проверить ваши утверждения несложно - сделать файл с синтаксической ошибой, и применить к нему оба оператора. |