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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> В чем отличия указателя self от this? 
:(
    Опции темы
romantik2011
Дата 27.7.2011, 19:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



В чем отличия указателя self от this? Что-то не совсем ясно.
PM MAIL   Вверх
azesmcar
Дата 27.7.2011, 19:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


uploading...
****


Профиль
Группа: Участник Клуба
Сообщений: 6291
Регистрация: 12.11.2004
Где: Армения

Репутация: 12
Всего: 211



$this - текущий объект
self - текущий класс
PM   Вверх
romantik2011
Дата 27.7.2011, 19:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



А какой прикол от этого на текущий объект или текущий класс?
PM MAIL   Вверх
azesmcar
Дата 27.7.2011, 19:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


uploading...
****


Профиль
Группа: Участник Клуба
Сообщений: 6291
Регистрация: 12.11.2004
Где: Армения

Репутация: 12
Всего: 211



Класс - это тип.
Код

class X {};
// X это класс.
$obj = new X(); // объект этого класса

для обычных функций вызываешь
Код

$this->func();

для статических
Код

self::func();



Это сообщение отредактировал(а) azesmcar - 27.7.2011, 21:30
PM   Вверх
romantik2011
Дата 27.7.2011, 20:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Так можно обращаться к статическим методам и свойствам класса без ключевого слова SELF и всё равно интерпретатор не выдаёт ошибок.
PM MAIL   Вверх
azesmcar
Дата 27.7.2011, 21:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


uploading...
****


Профиль
Группа: Участник Клуба
Сообщений: 6291
Регистрация: 12.11.2004
Где: Армения

Репутация: 12
Всего: 211



Цитата(romantik2011 @  27.7.2011,  20:12 Найти цитируемый пост)
Так можно обращаться к статическим методам и свойствам класса без ключевого слова SELF и всё равно интерпретатор не выдаёт ошибок. 

где?
http://codepad.org/WKaeJszx
PM   Вверх
capitan
Дата 16.8.2011, 18:07 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 602
Регистрация: 27.2.2005
Где: Москва

Репутация: 9
Всего: 13



Предыдущая проблема решилась. Появилась следующая.
Если делать дамп $this получаем
Код

object(AdvUserReviews)#173 (4) {
  ["data"]=>
  array(0) {
  }
  ["plugin_name"]=>
  string(25) ".......php"
  ["plugin_url"]=>
  string(56) "http://............../"
  ["tbl_adv_reviews"]=>
  string(14) "wp_adv_reviews"
}

а если self::$_instance 
Код

object(AdvUserReviews)#173 (0) {
}

Хотя все переменные доступны. Т.е. отдельно делаю дамп self::plugin_name - все ок. Где хранится весь объект?

ksnk - прошу прощения, что стер свой пост. Сам дошел до того, что Вы мне подсказали. Думал никто не ответил, сотру.

Это сообщение отредактировал(а) capitan - 16.8.2011, 21:36
PM MAIL WWW ICQ   Вверх
ksnk
Дата 16.8.2011, 18:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

Репутация: 96
Всего: 386



в статическом методе не бывает this. Статические методы, это навроде namespace...

В примере нужно пользоваться следами от функции init. self::$_instance и будет тем самым this, который требуется. кстати, указатель не обязателен. Объекты в php5 передаются по указателю.


--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
hunterman
Дата 18.8.2011, 07:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Если есть немного знания английского то можно тут почитать ответы

http://www.phpbuilder.com/board/showpost.p...amp;postcount=4
http://stackoverflow.com/questions/151969/php-self-vs-this
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.0744 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


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

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