Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Хранение функции в файле

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: о том, как сохранить функцию в файле и вызывать её оттдуда на многих страницах, не описывая каждый раз.
cod
Отправлено: 18 Июля, 2011 - 23:24:32
Post Id


Новичок


Покинул форум
Сообщений всего: 6
Дата рег-ции: Июль 2011  


Помог: 0 раз(а)




Собираясь гуглить думал, что быстренько найду ответ на свой вопрос. Наверняка не я первый этим интересуюсь. Но как-то пусто оказалось, может не так искал.. В общем, у меня вопрос:
Можно ли описать функцию в отдельном файле и потом по мере надобности использовать её из этого файла в других php-скриптах? Думаю понятно для чего это, - чтобы уменьшить количество кода.
(Добавление)
Хех Хорошо Только создал тему, вернулся к коду и сам разобрался))
Через функцию include() всё без проблем делается. Создаёшь файл с описанием функции и потом его подключаешь, - всё можно использовать функцию.
А у меня сначала не получилось потому что я в файле не поставил тег <?php... ?>
 
 Top
foozzi
Отправлено: 19 Июля, 2011 - 08:49:23
Post Id



Посетитель


Покинул форум
Сообщений всего: 283
Дата рег-ции: Май 2011  
Откуда: rm -rf /


Помог: 0 раз(а)




это очень банально )
я никогда не поверю что описание правила для инклуда не описываются в поисковиках)

(Отредактировано автором: 19 Июля, 2011 - 08:53:54)



-----
90% ошибок находятся в полуметре от монитора...
 
 Top
Slavenin
Отправлено: 19 Июля, 2011 - 16:27:57
Post Id



Посетитель


Покинул форум
Сообщений всего: 285
Дата рег-ции: Май 2010  
Откуда: Тверь


Помог: 4 раз(а)




cod, курите ООП и будет вам счастье и лучше использовать
а не инклюд

(Отредактировано автором: 19 Июля, 2011 - 16:30:09)

 
 Top
alxfro
Отправлено: 19 Июля, 2011 - 20:54:31
Post Id



Частый гость


Покинул форум
Сообщений всего: 208
Дата рег-ции: Июль 2011  


Помог: 0 раз(а)




Сделай себе отдельный класс с набором функций и используй его при необходимости..
Я имею ввиду

mysuperclass.php
PHP:
скопировать код в буфер обмена
  1. class mysuperclass ()
  2. {
  3. function _1 ($input)
  4. {
  5. echo 'trololo'.$input;
  6. }
  7.  
  8. function _2()
  9. {
  10. $this->function_1('trololo');
  11. }
  12. }


и наконец
PHP:
скопировать код в буфер обмена
  1. include "mysuperclass.php";
  2. $superclass = new mysuperclass();
  3. $superclass -> functton2();


выведет
trololotrololo


какой, однако, странный вопрос Не понял

(Отредактировано автором: 19 Июля, 2011 - 20:55:29)

 
 Top
Конструктор
Отправлено: 19 Июля, 2011 - 21:03:55
Post Id



Частый гость


Покинул форум
Сообщений всего: 128
Дата рег-ции: Апр. 2010  


Помог: 1 раз(а)




Кстати разрешение подключаемого файла не обязательно должно быть *.php.
Можете сделать свое, только эти файлы тогда должны быть не в главной папке сайта, для безопасности.
_________
А еще и сам хотел спросить?
Кто подскажет какой метод и когда лучше для подключения:
include('file.xxx'), require('file.xxx') или readfile('file.xxx') ?


foozzi пишет:
не описываются в поисковиках)

в поисковиках нечего не описывается, опысывается в сайтах которые они выдают

(Отредактировано автором: 19 Июля, 2011 - 21:07:14)



-----
Если все время идти вперед, до цели будет немного ближе..
 
 Top
White
Отправлено: 19 Июля, 2011 - 21:11:00
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 830
Дата рег-ции: Июнь 2011  
Откуда: Днепропетровск


Помог: 28 раз(а)




alxfro
а где в вашем примере ооп?

Slavenin правильно говорит, для библиотек функций и классов наиболее правильно использовать require_once(). Это избавит от ошибок, так как код включаемого файла не будет выполняться а лишь переноситься в скрипт, и будет ли библиотека включена до или после использования описанных в ней функций не будет иметь значения.


-----
if(time()>1356048000) die();
 
 Top
alxfro
Отправлено: 19 Июля, 2011 - 21:19:02
Post Id



Частый гость


Покинул форум
Сообщений всего: 208
Дата рег-ции: Июль 2011  


Помог: 0 раз(а)




White пишет:
alxfro
а где в вашем примере ооп?


а я ни слова ни говорил про ООП, заметь
я просто показал пример как хранить и вызывать функции, как и спросил автор
я разве что-то сказал про ООП? Не понял
 
 Top
White
Отправлено: 19 Июля, 2011 - 21:27:16
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 830
Дата рег-ции: Июнь 2011  
Откуда: Днепропетровск


Помог: 28 раз(а)




alxfro
обьекты и классы использованные в вашем примере являются составными частями ооп. тем не менее в данном примере они не несут абсолютно никакой смысловой нагрузки, а лишь:
1. Усложняют метод вызова функций
2. Усложняют код
3. Сужают возможность его использования до контекста существования объекта

PHP:
скопировать код в буфер обмена
  1.  
  2. function _1 ($input) {
  3.   echo 'trololo'.$input;
  4. }
  5.  
  6. function _2() {
  7.   function_1('trololo');
  8. }
  9.  
  10. function_2('trololo');
  11.  


более читаемый и масштабируемый код, при этом память не засоряется ненужными объектами


-----
if(time()>1356048000) die();
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB