итак, у меня в php скрипте есть класс. Внутри класса естесственно функции. Но внутри одной функции есть ещё функции (подгружаются в зависимости от модуля).
если вывести на экран переменную, допустим, $this->value внутри функции класса, то переменная нормально отображается (ну а как же есчё) :) но если попытаться вывести эту же переменную ($this->value) внутри функции, которая находится в функции класса, то вылазит ошибка
Fatal error: Using $this when not in object context in \home\test1.ru\www\_include\m\blog\functions.php on line 108
Как бы вам обьяснить то ещё. Ну вот допустим класс:
class example
{
var $value;
function get_content()
{
print $this->value;//здесь всё окей
function test()
{
print $this->value;//а здесь вылазит та самая ошибка
}
}
}
я думаю, как-то же это можно исправить?
Примечание:
Larry0ua
спасибо за ответ. Я думал что я описал всё понятно для всех. Ну видать просто в мозгу засел этот класс, и рассказываю вам о нём как со-разработчикам)
вобщем я тогда расскажу всё подробно.
Я написал свою цмс .(просто не люблю разбираться в чужом коде, и поэтому насписал свою цмс , которая мне понятна полностью. Не осуждайте меня. Я начинающий.).
начало index.php такое:
session_start();
include("общие функции для всей цмс");
include("cms.php");
========cms.php========
<?
class cms
{
var $title;
var $values;
*/
$values:
урл выглядит у меня так:
http://site.ru/+имя_модуля/значение1/значение2/значение3 и тд.
при чём начение1/значение2/значение3 и тд. - ето в .htaccess = $values_arr
так вот массив етих значений - ето explode("/",$values_arr)
/*
var $module;//имя модуля (http://site.ru/+имя модуля/значения для модуля)
var $global_config;// получаю из бд путём while($row=mysql_fetch_assoc($result)){$global_config[$row['name']]=$row['value']}
var $content; //контент страницы
function initialize()
{
$result=mysql_query("SELECT * FROM `config`"); //вот он.... конфиг
while($row=mysql_fetch_assoc($result))
{
$this->global_config[$row['name']]=$row['value'];
}
$this->values=explode("/",$_GET['path']);
if($this->values[0]=="")
{
unset($this->values); //вот values
}
if(is_dir("_include/m/".$this->module) && is_file("_include/m/".$this->module."/functions.php")) //вот загрузка модуля и его функций (есле они вобшще существуют)
{
include("_include/m/".$this->module."/functions.php");
}
}
function load_module($name)
{
$this->module=$name;
ob_start();
if(is_dir("_include/m/".$this->module) && is_file("_include/m/".$this->module."/index.php"))
{
if(is_file("_include/m/".$this->module."/functions.php"))
{
include("_include/m/".$this->module."/functions.php");
}
include("_include/m/".$this->module."/index.php");
}
$this->title="asderwe";
$this->content=ob_get_contents();
ob_end_clean();
return $a;
}
}
?>
======================
тоесь видите? functions.php инклудиться тока если модуль такой запрошен (я думаю что чем меньше функций загружено в память, тем всё быстрей работает. Правильно?)
так вот в functions.php есть дополнительные функции.
И в них я немогу получить переменные из класса.
Если честно я вобще классы всегда презерал, потомучто думал что ето бред полный, но вчера выяснил что они в чём то удобны) ну я такой человек. Сначала ничего не нравится а потом цепляет)
если у вас есть тяга к помощи другим, или вам что-то непонятно, то буду рад если ответите в аське) заранее спасибо. 39-009-49
RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.
Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.
Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.