Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Работа с инклюдами - помогите пожалуйста
 
 автор: Atreides   (09.01.2009 в 12:13)   письмо автору
 
 

Для упрощения работы с кодом хочу с самого начала организовать создаваемые функции в некоторое количество файлов (по областям применения), а потом подключать эти файлы к основному коду. В общих чертах разобрался, что подключение надо делать с помощью include() или include_once().

Теперь вопрос первый - в чём разница работы этих функций? Я пробовал и то и другое, а разницы не ощутил. Есть ли она и в чём заключается?

Второй вопрос - как собственно происходит подключение и как это выглядит для сервера? Допустим, есть файл index.php следующего вида:
<?php 
  
include_once(functionlist.php); 
  
  
$a function1(); 
  echo(
"$a"); 
?>



Как этот текст понимает сервер? Означает ли он, что содержимое functionlist.php как бы вставляется в текст файла index.php и дальше это всё обрабатывается как единый файл или при обращении к функциям из functionlist.php происходят какие-то переходы от одного файла к другому и обратно? Типа сервер дошёл до функции, отложил в сторону index.php, сотворил что-то с functionlist.php, запомнил результат, отложил уже этот файл, вернулся к index.php и вставил результат туда?

Третий вопрос - как работать с многоуровневыми включениями? Допустим, есть файл с функциями, совершающими простые элементарные действия simplefunctions.php, есть файл с функцией, которая использует функции из simplefunctions.php и возвращает более сложный результат. Как правильно подключить эту функцию к файлу index.php? То есть можно ли сделать вот так:
simplefunctions.php :

<?php 
  
function abc (...) 
    { 
      
    } 
  function 
def (...) 
    { 
      
    } 
  function 
ghi (...) 
    { 
      
    } 
?>


mixedfunction.php :

<?php 
  
include_once(simplefunctions.php); 
  function 
sample (...) 
    { 
     return (
abc()+def()+ghi()); 
    } 
?>


index.php :

<?php 
  
include_once(mixedfunction.php); 
  echo(
sample()); 
?>


Будет ли этого достаточно или же необходимо включать в index.php и первый файл? И ещё - будут ли функции из simplefunctions.php доступны в index.php, если делать включения так, как написано в коде выше?

Четвёртый вопрос - как работать с дескрипторами, полученными при выполнении функций из библиотек (дескрипторы соединения с БД / картинками и т.д.). Будут ли они иметь смысл в индексном файле или их можно использовать только в пределах той функции, в которой они были получены? То есть допустим в подключённом файле в одной из функций был получен дескриптор соединения с БД. Есть ли смысл передавать его через return() в исходный файл или в этом нет смысла и работать он не будет?

Пятый вопрос - прописывание путей к инклюдам. Хотелось бы, чтобы все пути шли от корневого каталога и что в этом случае будет им считаться - папка "www" или та папка, в которой эта "www" лежит. То что "./" в пути означает текущую папку, а "../" - папку уровнем выше, я уже разобрался. А как обозначить папку "www", чтобы не высчитывать каждый раз сколько "../" до неё надо поставить. Можно ли это сделать средствами php и если да, то как.

  Ответить  
 
 автор: OpenWindow   (09.01.2009 в 19:12)   письмо автору
 
   для: Atreides   (09.01.2009 в 12:13)
 

По порядку:
1) include() - включение скрипта, include_once() - включение один раз, во избежании второго включения или третьего там...
2) Думаю, что: "содержимое functionlist.php как бы вставляется в текст файла index.php и дальше это всё обрабатывается как единый файл"!

  Ответить  
 
 автор: Николай2357   (09.01.2009 в 20:40)   письмо автору
 
   для: Atreides   (09.01.2009 в 12:13)
 

Сделайте вот так и многие вопросы отпадут сами собой.

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования