Задача следующая.
Есть 2 файла, в одном класс А, в другом В.
В классе В содержится функция С. (B->С)
В классе А содержится 2 функции D и E.
Нужно подгрузить и создать экземпляр класса С в функции D, а потом работать с методами класса С в функции Е, через метод D.
Жуть какая то вышло, но надеюсь понятно, я просто уже незнаю как реализовать такую связку. Заранее спасибо за помощь)
Спустя 4 минуты (5.11.2011 - 23:55) Игорь_Vasinsky написал(а):
оОоо всех трёх китов за раз зацепил
может код подкинишь?

может код подкинишь?
Спустя 4 минуты, 35 секунд (5.11.2011 - 23:59) Gesandte написал(а):
class modules {
public function elements() {
$path = $_SERVER['DOCUMENT_ROOT']."modules/default/";
require_once $path."language.php";
$language = new language;
}
public function title() {
$this->elements->language->select('russian')->text['server']; # это неработающее извращение, но так по крайней мере понятно что требуется =))
}
public function content() {
phpinfo(); # при необходимости в этой функции мы так же должны иметь возможность использовать данный из класса language
}
}
?>
Спустя 1 минута, 12 секунд (6.11.2011 - 00:01) Игорь_Vasinsky написал(а):
Есть 2 файла, в одном класс А, в другом В.
В классе В содержится функция С. (B->С)
В классе А содержится 2 функции D и E.
я задумался....
Спустя 56 секунд (6.11.2011 - 00:02) Gesandte написал(а):
понимаю что написал хрень))) все давно забыто и до ооп толком не дошел)
Спустя 3 минуты, 45 секунд (6.11.2011 - 00:05) m4a1fox написал(а):
Я думаю Игорь удивился откуда D и E появились!
Спустя 45 секунд (6.11.2011 - 00:06) Игорь_Vasinsky написал(а):
m4a1fox в яблочко 
- Т.е. ты говориш о вполне реальных классах с методами? а зачем рисуешь абстракции?

- Т.е. ты говориш о вполне реальных классах с методами? а зачем рисуешь абстракции?
Спустя 4 минуты, 3 секунды (6.11.2011 - 00:10) SerginhoLD написал(а):
Есть 2 файла, в одном класс А, в другом В.
В классе В содержится функция С. (B->С)
В классе А содержится 2 функции D и E.
Нужно подгрузить и создать экземпляр класса С в функции D, а потом работать с методами класса С в функции Е, через метод D.
Что за чушь во втором абзаце?
В начале написано, что `C` это функция в классе `B`, а потом откуда не возьмись, создать экземпляр класса `C`
:blink:
Ты уж определись :)
Спустя 4 минуты, 10 секунд (6.11.2011 - 00:14) Gesandte написал(а):
а хрен его знает)
кусок кода выложил, там понятнее должны быть....а то А, B, C, D, E..... =D сам могу запутаться)
кусок кода выложил, там понятнее должны быть....а то А, B, C, D, E..... =D сам могу запутаться)
Спустя 2 минуты, 16 секунд (6.11.2011 - 00:17) Gesandte написал(а):
Цитата (Игорь_Vasinsky @ 5.11.2011 - 21:06) |
m4a1fox в яблочко ![]() - Т.е. ты говориш о вполне реальных классах с методами? а зачем рисуешь абстракции? |
вначале думал так проще будет)
Спустя 4 минуты, 4 секунды (6.11.2011 - 00:21) m4a1fox написал(а):
Gesandte
Цитата |
функции D |
Простите за придирчивость - но метод, так правильно!
Спустя 1 минута, 55 секунд (6.11.2011 - 00:23) Игорь_Vasinsky написал(а):
m4a1fox
выложи ему тот кусок кода (полиморфизм + инкапсуляция)
выложи ему тот кусок кода (полиморфизм + инкапсуляция)
Спустя 5 минут, 15 секунд (6.11.2011 - 00:28) SerginhoLD написал(а):
Вот короче, что-то типа того, дальше уже говори что хочешь))
index.php
classes/modules.php
classes/language.php
//index.php
require_once 'classes/modules.php';
$mod = new modules;
echo $mod->text();
//modules.php
require_once 'language.php';
class modules
{
function elem()
{
return new language;
}
function text()
{
return $this->elem()->text();
}
}
//language.php
class language
{
function text()
{
return 'text';
}
}
Спустя 2 минуты, 15 секунд (6.11.2011 - 00:30) m4a1fox написал(а):
Игорь_Vasinsky
Цитата |
выложи ему тот кусок кода (полиморфизм + инкапсуляция) |
А есть смысл?
Gesandte
Давай скрипты сюда, будем делать смотреть!
Спустя 1 минута, 17 секунд (6.11.2011 - 00:31) m4a1fox написал(а):
SerginhoLD
Эка хитро закрутил! Сходу и не понять!
Эка хитро закрутил! Сходу и не понять!
Спустя 9 минут, 56 секунд (6.11.2011 - 00:41) Gesandte написал(а):
хм, а с return так выглядит ничего) но сходу не заработало, буду завтра разбираться тогда)))
Спустя 2 минуты, 51 секунда (6.11.2011 - 00:44) Gesandte написал(а):
хотя возможно вру)))) вроде прогресс есть) только файл не инклудиться чего то)
SerginhoLD спасибо за идею)
SerginhoLD спасибо за идею)
Спустя 3 минуты, 16 секунд (6.11.2011 - 00:47) SerginhoLD написал(а):
Цитата (Gesandte @ 5.11.2011 - 21:44) |
спасибо за идею) |
это не идея, это смысл ООП, классы отдельно друг от друга, это кучка функций в мусорном баке

Спустя 7 минут, 10 секунд (6.11.2011 - 00:55) caballero написал(а):
Цитата |
хм, а с return так выглядит ничего) но сходу не заработало, буду завтра разбираться тогда))) |
в смысле ничего хорошего?
включать require_once внутрь методов класса - признак дурного тона
автолоад для кого придумали? Для Пушкина?
Спустя 4 минуты, 56 секунд (6.11.2011 - 00:59) SerginhoLD написал(а):
caballero
чеж ты всегда к каждому слову придираешься, ну показали ему пример, а там как ему нравиться, так пусть и делать: __autoload, инклуд над названием класса, инклуд в методе, это можно сказать почерк, но то что __autoload самое правильное, это да, согласен
чеж ты всегда к каждому слову придираешься, ну показали ему пример, а там как ему нравиться, так пусть и делать: __autoload, инклуд над названием класса, инклуд в методе, это можно сказать почерк, но то что __autoload самое правильное, это да, согласен

Спустя 4 минуты, 19 секунд (6.11.2011 - 01:04) caballero написал(а):
Цитата |
ну показали ему пример, а там как ему нравиться, так пусть и делать |
именно так он и будет делать - в всех надцати местах где надо создать экземпляр класса будет втыкать require_once
автолоад для примера конешно лишнее
просто перенеси все require вверх и все дела
Спустя 12 часов, 56 минут, 38 секунд (6.11.2011 - 14:00) Gesandte написал(а):
до автолоада еще дойдем))) надеюсь)
пока возник еще один небольшой глупый вопрос
Так конечно же не работает....) и незнаю как заставить..
В результате родилась такая идея :lol:
Что скажете?
пока возник еще один небольшой глупый вопрос
<?php
class A {
public $one = array();
public function B() {
$this->one['d'] = "aaa!";
$this->one['e'] = "eee!";
}
}
$A = new A;
$A->B()->one['e'];
?>
Так конечно же не работает....) и незнаю как заставить..
В результате родилась такая идея :lol:
<?php
class language {
private $available = array();
private $language = array();
private function english($text) {
switch ($text) {
case 'a': $lang = "one"; break;
case 'e': $lang = "two"; break;
}
return $lang;
}
private function russian($text) {
switch ($text) {
case 'a': $lang = "one_rus"; break;
case 'e': $lang = "two_rus"; break;
}
return $lang;
}
public function select($select, $text) {
$this->available = array('english', 'russian');
foreach ($this->available as $one) {
if ($select === $one) {
$this->language['check'] = true;
break;
} else {
$this->language['check'] = false;
}
}
if ($this->language['check'] == true) {
return $this->$select($text);
} else {
return $this->english($text);
}
}
}
$language = new language;
echo $language->select('russian', 'e');
?>
Что скажете?
Спустя 14 минут, 48 секунд (6.11.2011 - 14:15) caballero написал(а):
Цитата |
В результате родилась такая идея |
Идея чего?
Цитата |
Что скажете? |
так поделись с аудиторией что ты сделать хочешь. Ну видим красиво отформатированный кусок кода. И что?
например не понятно в чем высший смысл каждый раз выбирать язык
а не выбрать язык а потом вызывать функции для слов
что тут в таком случае класс вообще делает (кроме понтов "я юзаю ООП")
так как ты написал можно обойтись одной обычной функцией и кода будет в три раза меньше
Спустя 49 минут, 20 секунд (6.11.2011 - 15:05) Renden написал(а):
Gesandte
Фореч помоему лишний, можно наврно так же:
ЗЫ поставь пожалуйста "заменять табуляцию пробелами" в своем редакторе...
Фореч помоему лишний, можно наврно так же:
public function select($select, $text) {
$this->available = array('english', 'russian');
if(in_array($select, $this->available))
return $this->$select($text);
else
return $this->english($text);
}
ЗЫ поставь пожалуйста "заменять табуляцию пробелами" в своем редакторе...
Спустя 1 час, 23 минуты, 37 секунд (6.11.2011 - 16:28) Gesandte написал(а):
caballero, согласен что лучше вначале выбрать язык....пока получается так, только оно нихрена не работает......
Notice: Trying to get property of non-object in ........
Renden, спасибо что поправил)
<?php
class content {
public $a = array();
function lang() {
$this->a['1'] = "o_O";
}
public function title() {
echo $this->lang()->a['1']; # как здесь вывести значение a['1'] ?
}
}
$content = new content;
$content->title();
?>
Notice: Trying to get property of non-object in ........
Renden, спасибо что поправил)
Спустя 4 минуты, 34 секунды (6.11.2011 - 16:33) sharki написал(а):
............
function lang() {
$this->a['1'] = "o_O";
return $this;
}
Спустя 45 минут, 32 секунды (6.11.2011 - 17:18) Gesandte написал(а):
блин.....так все просто, а голову ломаю полдня сижу
спасибо)
