Я довольно новыми для PHP ООП, проблема, что я есть, что я не могу обернуть мою голову вокруг последующей компоновкой моего сценария: устанавливаетсяOO PHP Функции
- основной класс, который устанавливает страницу и расширяет класс mysql и создает соединение с базой данных через __construct
- в основном классе i запускает публичную функцию, которая включает() файл и обращается к функции, которая находится в этом файле include
- в функции, которая является в включенном файле я, похоже, не могу получить доступ к основному классу через ни настоящую глобальную переменную, либо использовать $ this-> blah
У кого-нибудь есть указатели или направление. я попытался найти его, но не смог найти ничего, что было бы близко к тому, что я пытался сделать.
он начал с: - работает
$gw = new GWCMS();
затем внутри _construct из GWCMS(), который GWCMS расширяет MySql - работает
parent::__construct(DB_HOST,DB_USER,DB_PASSWORD,DB_NAME);
$this->build();
затем вызывает сборки() - работает
public function build(){
...
$page['content'] = $this->plugins($page['content']);
...
$output = $this->output($theme,$page);
echo eval('?>' . $output);
}
, который вызывает плагины() - у нас возникают проблемы
public function plugins($content){
$x = 0;
if ($handle = opendir(STOCKPLUGINPATH)) {
while (false !== ($entry = readdir($handle))) {
if(is_dir(STOCKPLUGINPATH . $entry . '/') && $entry != '.' && $entry != '..'){
if(file_exists(STOCKPLUGINPATH . $entry . '/inc.php')){
include(STOCKPLUGINPATH . $entry . '/inc.php');
$content = do_shortcode($content);
}
}
}
closedir($handle);
}
return $content;
}
предыдущий код включает в себя inc.php, в котором перечислены файлы, которые будут включать в себя:
include(STOCKPLUGINPATH . 'Test/test.php');
test.php содержит список функций. do_shortcode выше обращается к функциям без проблем и, тем не менее, мне нужна следующая функция, которая находится в test.php для доступа к $ gw-> fetchAssoc(); который fetchAssoc в родителю gwcms
function justtesting2($attr){
$config = $gw->fetchAssoc("Select * from gw_config");
foreach($config as $c){
echo $c['value'];
}
}
, когда я запустить скрипт я получаю
Fatal error: Call to a member function fetchAssoc() on a non-object in /home/globalwe/public_html/inhouse/GWCMS/gw-includes/plugins/Test/test.php on line 9
Мы должны видеть код. Пожалуйста, разместите только соответствующие детали. –
'$ this' не входит в сферу действия этой функции, почему ваш« глобальный »не работает ... возможно, потому, что он не находится в глобальной области, но в другой области. Трудно сказать без (минималистического!) Примера кода. – Wrikken
Глобальный звук вообще не звучит OOP'ish. – PeeHaa