Вызов функции из другого класса
Есть 2 класса, независимые друг от друга, при вызове функции имеющейся в одном из классов вылетает ошибка:
Fatal error: Call to a member function …() on a non-object in…
данная ошибка возникает из-за того, что функция класса использует переменную, которая определена в этом классе выше, но не задействована. Подскажите, как вызвать требуемую функцию из нужного класса? Спасибо
Сообщения: 4761 Репутация: N Группа: в ухо
22 апреля 2010 г. 1:43, спустя 14 минут 53 секунды
как вызвать требуемую функцию из нужного класса?
myClass::myMethod();
// или так
$c = new myClass;
$c->myMethod();
//но, эта принципиально две разные вещи
Сообщения: 6067 Репутация: N Группа: Джедаи
22 апреля 2010 г. 1:44, спустя 1 минуту 19 секунд
mb reflection api?
Сообщения: 59 Репутация: N Группа: Кто попало
22 апреля 2010 г. 1:49, спустя 5 минут 8 секунд
$test= myClass::myMethod();
Я вызываю как раз таким способом, и возникает ошибка
Сообщения: 6067 Репутация: N Группа: Джедаи
22 апреля 2010 г. 1:51, спустя 1 минуту 53 секунды
$test= myClass::myMethod();
Я вызываю как раз таким способом, и возникает ошибка
а функция или класс статический?
Спустя 47 сек.
или это не обязательно, что бы вызывать таким способом?
Сообщения: 59 Репутация: N Группа: Кто попало
22 апреля 2010 г. 1:52, спустя 1 минуту 3 секунды
$test= myClass::myMethod();
Я вызываю как раз таким способом, и возникает ошибка
а функция или класс статический?
Спустя 47 сек.
или это не обязательно, что бы вызывать таким способом?
Просто объявлены как class и function
Сообщения: 6067 Репутация: N Группа: Джедаи
22 апреля 2010 г. 2:01, спустя 9 минут 12 секунд
progs, ну насколько я понимаю и знаю, то вот такой вид вызова (myClass::myMethod()) относится к статическим функциям или классам…
Спустя 274 сек.
Спустя 59 сек.
$test= myClass::myMethod();
Я вызываю как раз таким способом, и возникает ошибка
попробуйте
$test= new myClass;
$test->myMethod();
Сообщения: 6480 Репутация: N Группа: Джедаи
22 апреля 2010 г. 2:05, спустя 3 минуты 13 секунд
если метод нестатический, но вызывается через :: — будет сгенерирован нотайс, но уж никак не фаталл эррор
Сообщения: 22959 Репутация: N Группа: в ухо
22 апреля 2010 г. 10:35, спустя 8 часов 30 минут
progs, покажите ваши классы
https://smappi.org/ — платформа по созданию API на все случаи жизни
Сообщения: 574 Репутация: N Группа: Джедаи
22 апреля 2010 г. 10:39, спустя 4 минуты 31 секунду
Fatal error: Call to a member function …() on a non-object in…
Как бы говорит, что нельзя вызывать методы объекта, если объект не существует.
Если вызываешь метод статически (так: Class::method()) то внутри метода $this не определён.
Work, buy, consume, die
Сообщения: 2284 Репутация: N Группа: Адекваты
22 апреля 2010 г. 11:03, спустя 23 минуты 33 секунды
progs, а подключение на файловом уровне для нужного класса есть?
Сообщения: 2008 Репутация: N Группа: Кто попало
22 апреля 2010 г. 12:10, спустя 1 час 7 минут 7 секунд
Все накинулись ребус разгадывать:)
progs, давай подсказку. Код в студию
Сообщения: 59 Репутация: N Группа: Кто попало
23 апреля 2010 г. 7:29, спустя 19 часов 19 минут 15 секунд
Спустя 247 сек.
class GoodsModelGoods
var $id;
var $res;
static $pi=3.14;
function getGreeting()
function category_list($id)
+ еще несколько функций объявленных таким же образом
>
данный класс подключается как
require_once( …);
допустим при обращении таким образом к переменной echo GoodsModelGoods::$pi; результат выводиться, а вот так уже нет
echo GoodsModelGoods::category_list($id);
Сообщения: 4761 Репутация: N Группа: в ухо
23 апреля 2010 г. 9:31, спустя 2 часа 2 минуты 22 секунды
progs, бестолковые какието у тебя классы.
купи учебник по ООП
Пожалуйста, авторизуйтесь, чтобы написать комментарий!
PHP: Как вызвать функцию из класса зная ее название?
Используйте функцию call_user_func.
call_user_func(callback function, [mixed parameter], [mixed …])
Например:
$class = 'MyClass'; $functions = 'FunctionInMyClass'; $param1 = 1; $param2 = 'Foo'; call_user_func(array($class, $functions), $param1, $param2);
Запись опубликована в рубрике PHP, Вопрос-ответ. Добавьте в закладки постоянную ссылку.
Вызов метода одного класса внутри другого класса
Как правильно описать метод внутри другого метода одного и того же класса?
Извияюсь за возможно глупый вопрос, но ООП тема для меня новая.Вот так выглядел метод класса в.
Вызов метода из другого класса
Добрый день, умные люди! Я только начала разбираться в ООП, вот появились вопросы, а не знаю к.
Вызов нестатического метода внутри класса
Здравствуйте! Подскажите пожалуйста, как вызвать внутри класса из одной функции — другую. Вот код.
Вызов метода одного класса через другой
Необходимо вызвать метод класса ч/з другой класс. Методов класса много, сами классы тоже много.
3834 / 3182 / 1337
Регистрация: 01.08.2012
Сообщений: 10,796
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
class gui { public function text_get(){ echo "НЛО: А шо вы тут забыли , приперлись с своими водолазами на 1км под воду, нас НЛО ни когда не видели!"; } } class guui { function kool() { gui::text_get();// тут выполнить функцию с класса gui echo "
"; echo "НЛО: Шас мы вас смоем
"; } } $a = new guui; $a->kool();
Почетный модератор
16843 / 6722 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
Jodah, это будет с ошибкой, надо либо создавать объект класса gui, либо делать метод text_get статическим.
16 / 33 / 19
Регистрация: 20.08.2013
Сообщений: 740
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
class gui { public function text_get(){ echo "НЛО: А шо вы тут забыли , приперлись с своими водолазами на 1км под воду, нас НЛО ни когда не видели!"; } } class guui extends gui { function kool() { $this->text_get(); // выполняеться таким образом через $this echo "
"; echo "НЛО: Шас мы вас смоем
"; } }
Как правильно вызвать метод класса внутри самого класса?
Здравствуйте. Собственно тема прописана в заголовке: как правильно вызвать метод класса внутри самого класса?
Насколько я знаю, для статических методов существует self, а если надо вызвать не статический метод?
Вот, что я имею ввиду:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
class CName { public function funct1() { // реализация метода funct1 } public function funct2() { /* для статических */ self::funct1(); /* не для статических */ . } } ?>