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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 06.08.2008, 17:53   #1
Romanbl4
Форумчанин
 
Аватар для Romanbl4
 
Регистрация: 20.06.2007
Сообщений: 144
По умолчанию Классы в php

Есть код
PHP код:
class myClass
{

public function 
doSomethink()
{
///--- operations
}

public function 
alsoDoThisOperations()
{

function 
localOperations()
{
$this->doSomethink(); // - не работает
}

}



Но $this в функцию localOperations() не передается как мне этого хотелось Я полагаю, что $this для нее это функция alsoDoThisOperations(). Что мне написать вместо $this, чтобы не было ошибки.
Romanbl4 вне форума Ответить с цитированием
Старый 07.08.2008, 16:25   #2
Romanbl4
Форумчанин
 
Аватар для Romanbl4
 
Регистрация: 20.06.2007
Сообщений: 144
По умолчанию

Вобщем, я нашел выход из ситуации, просто передал $this в функцию в качетстве параметра

PHP код:
function localOperations($obj)
{
$obj->doSomethink();
}

localOperations($this); 
Но хотелось бы более "грамотно" это сделать.
Может есть какие-то другие специальные переменные типа $this. Например, наподобие _root во flashMX?
Romanbl4 вне форума Ответить с цитированием
Старый 07.08.2008, 16:30   #3
Arigato
Высокая репутация
СуперМодератор
 
Аватар для Arigato
 
Регистрация: 27.07.2008
Сообщений: 16,219
По умолчанию

Не понятно, а зачем одну функцию объявлять внутри другой?
Сделайте ее private в классе и $this будет работать.
PHP код:
class myClass
{

public function 
doSomethink()
{
///--- operations
}

public function 
alsoDoThisOperations()
{



}
private function 
localOperations()
{
$this->doSomethink(); // - работает
}


Arigato вне форума Ответить с цитированием
Старый 08.08.2008, 07:09   #4
crazy horse
ios developer
Старожил
 
Аватар для crazy horse
 
Регистрация: 16.11.2007
Сообщений: 2,885
По умолчанию

2Romanbl4 AS2, который ты пытаешься применить ко внешнему меру тут неприемлем)) и c ООП общего ни бельмеса не имеет! как и ссылки не верхние уровни, в частности _root. Советую это хорошо запомнить. И вообще, AS3 давно на дворе.
Цитата:
Я полагаю, что $this для нее это функция alsoDoThisOperations().
Не правильно полагаешь. $this - ссылка на текущую реализацию класса (объект,) коим метод объекта ну никак являться не может.
Цитата:
Не понятно, а зачем одну функцию объявлять внутри другой?
Сделайте ее private в классе и $this будет работать.
Совершенно верно.
Делайте что хотите, но чтобы через полчаса в лесу было светло, сухо и медведь!

Последний раз редактировалось crazy horse; 08.08.2008 в 16:51.
crazy horse вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Классы Старовъръ Общие вопросы Delphi 4 26.06.2008 17:00
классы ShenDy Общие вопросы C/C++ 1 12.04.2008 14:01
Классы Voucik Общие вопросы C/C++ 2 22.01.2008 17:03
Классы Mickle Общие вопросы Delphi 1 07.05.2007 12:16