Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 23.12.2015, 11:24   #1
moshkin_ura
Web Studio "БЕЛКО"
Форумчанин
 
Аватар для moshkin_ura
 
Регистрация: 15.08.2011
Сообщений: 180
Вопрос Классы и ООП

Здравствуйте программисты.
Подскажите как можно сделать так.
приведу пример где я видел такое исполнение
PHP код:
echo $mysqli->query({ЗАПРОС в БД})->fetch_assoc(); 
Тут видно что обращяемся к классу mysqli делаем запрос через функцию query() и эти данные потом передаются в функцию fetch_assoc().

Делаю немного похожую штуку но работаю с API одной системы.
PHP код:
$class = new class({переменные});
echo 
$class->get_data({переменные});//тут я получаю данные на выходе в формате JSON 
Я хочу к этому запросу добавить json() что-бы в него передались данные и он json перекодировал в многомерный массив
PHP код:
echo $class->get_data({переменные})->json();//тут return с get_data() должен передать в json() 
В свою очередь в функции json() просто прописано return json_decode({переменная для передачи данных с get_data()});

Подскажите пожалуйста как это делается? Просто плотно стал изучать ООП и этот момент меня зацепил немного...
Есть три способа отвечать на вопросы: сказать необходимое, отвечать с приветливостью и – наговорить лишнего
Плутарх - (ок. 46 — ок.120) - древнегреческий писатель, историк
moshkin_ura вне форума Ответить с цитированием
Старый 23.12.2015, 11:59   #2
CodeNOT
Форумчанин
 
Аватар для CodeNOT
 
Регистрация: 08.11.2010
Сообщений: 593
По умолчанию

1) заводите какое-то поле в классе (предположим $get_data_result
2) в нее кладете результат работы функции get_data
3) в get_data - возвращаете указатель на объект
Код:
return $this;
4) в функции json проверяем, есть ли get_data_result и если есть обрабатываем и возвращаем
CodeNOT вне форума Ответить с цитированием
Старый 23.12.2015, 12:02   #3
moshkin_ura
Web Studio "БЕЛКО"
Форумчанин
 
Аватар для moshkin_ura
 
Регистрация: 15.08.2011
Сообщений: 180
По умолчанию

Цитата:
Сообщение от CodeNOT Посмотреть сообщение
1) заводите какое-то поле в классе (предположим $get_data_result
2) в нее кладете результат работы функции get_data
3) в get_data - возвращаете указатель на объект
Код:
return $this;
4) в функции json проверяем, есть ли get_data_result и если есть обрабатываем и возвращаем
Немножно не понял, все выше сказанное.
т.е сразу когда выполняю get_data() заносим в $this->get_data допустим эти данные, а потом когда делаю вызов в json() я проверяю не пуста ли $this->get_data и делаю json_decode() ?
Есть три способа отвечать на вопросы: сказать необходимое, отвечать с приветливостью и – наговорить лишнего
Плутарх - (ок. 46 — ок.120) - древнегреческий писатель, историк
moshkin_ura вне форума Ответить с цитированием
Старый 23.12.2015, 12:31   #4
CodeNOT
Форумчанин
 
Аватар для CodeNOT
 
Регистрация: 08.11.2010
Сообщений: 593
По умолчанию

примерно так:
Код:
<?php

class SomeClass
{
	protected $__get_data_result = null;

	public function __construct(){}

	public function get_data($args)
	{
		$this->__get_data_result = null;
		/*some code here*/
		$this->__get_data_result = $funcion_result_work;
		return $this;
	}

	public function json()
	{
		return ($this->__get_data_result) ? json_encode($this->__get_data_result) : false;
	}
}
CodeNOT вне форума Ответить с цитированием
Старый 23.12.2015, 13:11   #5
moshkin_ura
Web Studio "БЕЛКО"
Форумчанин
 
Аватар для moshkin_ura
 
Регистрация: 15.08.2011
Сообщений: 180
По умолчанию

Цитата:
Сообщение от CodeNOT Посмотреть сообщение
примерно так:
Код:
<?php

class SomeClass
{
	protected $__get_data_result = null;

	public function __construct(){}

	public function get_data($args)
	{
		$this->__get_data_result = null;
		/*some code here*/
		$this->__get_data_result = $funcion_result_work;
		return $this;
	}

	public function json()
	{
		return ($this->__get_data_result) ? json_encode($this->__get_data_result) : false;
	}
}
А обязательно в get_data передавать весь $this ? просто этот класс много задачный и если не вызывать json() то там все что в this записано выводит. Может есть вариант просто $this->__get_data_result передать?
/*Добавлено через несколько минут */
что-бы вызывать без json надо писать так:
$s = new SomeClass;
print_r($s->get_data()->__get_data_result);
Есть три способа отвечать на вопросы: сказать необходимое, отвечать с приветливостью и – наговорить лишнего
Плутарх - (ок. 46 — ок.120) - древнегреческий писатель, историк

Последний раз редактировалось moshkin_ura; 23.12.2015 в 13:55. Причина: поправка
moshkin_ura вне форума Ответить с цитированием
Старый 24.12.2015, 22:21   #6
moshkin_ura
Web Studio "БЕЛКО"
Форумчанин
 
Аватар для moshkin_ura
 
Регистрация: 15.08.2011
Сообщений: 180
Восклицание

UP темы)))
Есть три способа отвечать на вопросы: сказать необходимое, отвечать с приветливостью и – наговорить лишнего
Плутарх - (ок. 46 — ок.120) - древнегреческий писатель, историк
moshkin_ura вне форума Ответить с цитированием
Старый 25.12.2015, 15:24   #7
moshkin_ura
Web Studio "БЕЛКО"
Форумчанин
 
Аватар для moshkin_ura
 
Регистрация: 15.08.2011
Сообщений: 180
По умолчанию

Проблема решена. Тему закрыть!
Есть три способа отвечать на вопросы: сказать необходимое, отвечать с приветливостью и – наговорить лишнего
Плутарх - (ок. 46 — ок.120) - древнегреческий писатель, историк
moshkin_ura вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
С#. Основные понятия ООП. Классы. Mina94 Помощь студентам 2 27.05.2014 22:13
Pascal Классы (ООП) Kroleg Помощь студентам 1 29.05.2011 19:40
Pascal Классы (ООП) Kroleg Паскаль, Turbo Pascal, PascalABC.NET 0 29.05.2011 09:53
С++,ООП,программа на классы VampIrchik Помощь студентам 1 25.01.2011 20:11
ООП->Телефонный справочник->классы winnix Общие вопросы C/C++ 1 10.11.2008 16:41