include внутри CLASS

PN
На сайте с 01.05.2008
Offline
113
2054

Почему не работает include внутри класса?

class System {

function require_fn ($file='',$f_file='',$f_line='',$admin=false){

if(file_exists($file)){ require($file); } else {

echo '<div style="border:1px solid red">'.$file;

if(isset($admin) and $admin===TRUE){ echo $f_file.' '.$f_line; };

echo ' </div>';

die();

};

} //function microdata_for_robots ($mikrodata_result=''){

} //Class System {

#---------------------------------------------------------------------------------------------------------------------

$system = new System();

$system->require_fn("bd.php",__FILE__,__LINE__,ADMIN);

Фигня какая-то , файл не всавляется и ошибка, причем не просто ошибка а как буд-то an unknown filter was not added: DEFLATE

---------- Добавлено 24.01.2013 в 05:29 ----------

include_once не подходит т.к. некотоыре вызываются несколько раз

M2
На сайте с 11.01.2011
Offline
342
#1

Для ответа на ваш вопрос, посмотрите вот эту страницу мануала по php. Конкретно секцию 2: Пример #2 Включение внутри функции.

------------------- Крутые VPS и дедики. Качество по разумной цене ( http://cp.inferno.name/view.php?product=1212&gid=1 ) VPS25OFF - скидка 25% на первый платеж по ссылке выше
PN
На сайте с 01.05.2008
Offline
113
#2

function include_fn ($file='',$f_file='',$f_line='',$admin=false){

if(file_exists($file)){ include $file; } else {

if(isset($admin) and $admin===TRUE){

echo '<div style="border:1px solid red">'.$file.' '.$f_file.' '.$f_line.' </div>';

} else { return false; }

};

} //function microdata_for_robots ($mikrodata_result=''){

Так? Все равно не работает

DiAksID
На сайте с 02.08.2008
Offline
218
#3

читаем внимательно:

... Если включение происходит внутри функции включающего файла, тогда весь код, содержащийся во включаемом файле, будет вести себя так, как будто он был определен внутри этой функции. То есть, он будет в той же области видимости переменных этой функции...
show must go on !!!...
PN
На сайте с 01.05.2008
Offline
113
#4

БлииииииииииН ! Спасибо! теперь я понял в чем глюк! А шглобальный инклюд вобще никак не сделать? Или через PUBLIC функцию?

DiAksID
На сайте с 02.08.2008
Offline
218
#5
Prosto_niki:
БлииииииииииН ! Спасибо! теперь я понял в чем глюк! А шглобальный инклюд вобще никак не сделать? Или через PUBLIC функцию?

а нахрена нужен "глобальные" include внутри класса? типа: каждому объекту класса по "глобальному" include 😂 ? создавайте объект - через него доступ к его public свойствам, всё кошерно...

C
На сайте с 04.02.2005
Offline
277
#6

А ТС что нибудь слышал о http://php.net/manual/en/language.oop5.interfaces.php

PN
На сайте с 01.05.2008
Offline
113
#7

Ну у меня например в инклюд файле будут новости или выводимые данные...

РАЗ ВЫВЕЛ - и все..

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий