Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> создание экземляра класса внутри самого класса 
V
    Опции темы
sgrey
Дата 19.3.2010, 05:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 265
Регистрация: 15.4.2006

Репутация: 1
Всего: 4



возможно ли такое в пхп? и если да, то как? напрмер есть класс А, можно ли внутри класса написать что-то вроде $a = new A(); ?
и например если вернуть $a во внешнюю переменную?
т.е. что-то в таком роде ->
Код

class A
{
public function func(){
$a = new A();
return $a;}
}

$b = new A();
$c = b->func();

PM MAIL   Вверх
Fortop
Дата 19.3.2010, 06:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2200
Регистрация: 13.11.2007
Где: Донецк

Репутация: 20
Всего: 42



Во-первых, возможно, причем ровно так, как написали (единственная ошибка в имени переменной в самом конце)
Во-вторых, почему бы не ознакомиться с  http://php.net/oop ?
В-третьих, такие вещи проще и быстрее попробовать, чем выяснять на форуме.


--------------------
Мир это Я.
Живее всех живых.
PM MAIL   Вверх
sgrey
Дата 19.3.2010, 06:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 265
Регистрация: 15.4.2006

Репутация: 1
Всего: 4



Цитата(Fortop @  19.3.2010,  06:14 Найти цитируемый пост)
Во-первых, возможно, причем ровно так, как написали (единственная ошибка в имени переменной в самом конце)
Во-вторых, почему бы не ознакомиться с  http://php.net/oop ?
В-третьих, такие вещи проще и быстрее попробовать, чем выяснять на форуме. 

да я щас просто выясняю стока вещей, что некоторые проще просить) документацию я смотрел, но именно этого вопроса не нашёл.
я вообще обычно на с++ пишу, а тут надо на пхп сделать сайт, а я его знаю так, тока семантику и то не всю, вот и приходится выяснять кучу вещей.  smile 
вот щас думаю либо писать класс-итератор, либо сделать немного проще и обойтись парой циклов ) помимо того что ещё надо как-то будет передать данные из класса из двумероного массива на главную страницу сайта )

Это сообщение отредактировал(а) sgrey - 19.3.2010, 07:05
PM MAIL   Вверх
brother79
Дата 19.3.2010, 07:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 471
Регистрация: 18.8.2009

Репутация: 2
Всего: 6



Цитата(sgrey @  19.3.2010,  06:52 Найти цитируемый пост)
да я щас просто выясняю стока вещей, что некоторые проще просить) документацию я смотрел, но именно этого вопроса не нашёл.
я вообще обычно на с++ пишу, а тут надо на пхп сделать сайт, а я его знаю так, тока семантику и то не всю, вот и приходится выяснять кучу вещей.  smile 
вот щас думаю либо писать класс-итератор, либо сделать немного проще и обойтись парой циклов ) помимо того что ещё надо как-то будет передать данные из класса из двумероного массива на главную страницу сайта )


Ещё там куча процедур готовых с массивами, так, что обычно 1-2 цикла можно просто выкинуть во многих задачах.


--------------------
PM MAIL WWW   Вверх
sgrey
Дата 19.3.2010, 07:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 265
Регистрация: 15.4.2006

Репутация: 1
Всего: 4



я решил проблему пока создав массив из объектов. вобщем-то изначально так и хотел, тока не был уверен что сработает. потом пройдусь простым for и выложу данные через уже готовые методы smile

Код

        $x = 0;
      foreach($arr as $data)
      {
          $this->stuff[$x] = new MyClass($data['title'], $data['body'], $data['n_date']);
          $x++;
      }
      return $this->stuff;


хотел вот узнать ещё есть ли простой способ реализации множественных конструкторов, а то всё что я нашёл вкулючает в себя больше писанины чем пользы выйдет  smile 
PM MAIL   Вверх
Fortop
Дата 19.3.2010, 13:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2200
Регистрация: 13.11.2007
Где: Донецк

Репутация: 20
Всего: 42



Цитата(sgrey @  19.3.2010,  06:27 Найти цитируемый пост)
хотел вот узнать ещё есть ли простой способ реализации множественных конструкторов,

В PHP параметры обычно нетипизированы (за двумя исключениями).
Поэтому необходимости во множественных конструкторах нет, все можно реализовать в одном.
Впрочем, если кода много, то можно часть его вынести например в защищенные методы.

Код

public function __construct($paramAny, $paramAny2) {
    switch (true) {
        case ($paramAny instanceof MyClass):
            // код
            $this->_initByMyClass($paramAny);
     break;
        case ($paramAny instanceof MyClass2):
            // код
            $this->_initByMyClass2($paramAny);
        break;
     default:
            // код
     break;
    }
}

protected function _initByMyClass(MyClass $param) {

}

protected function _initByMyClass2(MyClass2 $param) {

}


Добавлено через 5 минут и 1 секунду
Два метода _initByMyClass() показывают как можно типизировать параметр. если ожидается объект.
Тоже самое еще можно сделать для массива.
Если этого не указывать, то мы спокойно принимаем параметр любого типа.

Переменное число параметров тоже возможно. При помощи установки значений по-умолчанию
Код

function myfunc($val, $optional = 'sample') {}


или же при помощи func_get_args и связанных с ней функций
Код

function myfunc() {
    echo func_num_args();
    var_dump(func_get_args());
}

myfunc('один параметр');
myfunc('один параметр', 'еще один параметр', ...., '-надцатый параметр');




--------------------
Мир это Я.
Живее всех живых.
PM MAIL   Вверх
sgrey
Дата 19.3.2010, 19:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 265
Регистрация: 15.4.2006

Репутация: 1
Всего: 4



Цитата(Fortop @  19.3.2010,  13:22 Найти цитируемый пост)
или же при помощи func_get_args и связанных с ней функций

это похоже то что надо smile

Это сообщение отредактировал(а) sgrey - 19.3.2010, 20:44
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0801 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.