Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: указатель $this
 
 автор: mindless   (19.02.2007 в 16:12)   письмо автору
 
 

объясните в каких случаях его нужно использовать?
ведь далеко не везде использование $this дает эффект..
например:


class login{

function auth()

{
foreach($_POST as $key => $val){$$key=$val;}

$sql = "select * from users where login='$name';"; 
$res = mysql_query($sql);
$data=mysql_fetch_array($res);
echo $data['pass'];

}


если использовать login=$this->name - ничего не дает хтя вроде как идет обращение к переменной и..
echo $this->data['pass']; - тоже не работатет

   
 
 автор: Trianon   (19.02.2007 в 16:29)   письмо автору
 
   для: mindless   (19.02.2007 в 16:12)
 

переменные - члены класса полезно описывать...

[поправлено модератором]

   
 
 автор: mindless   (19.02.2007 в 17:00)   письмо автору
 
   для: Trianon   (19.02.2007 в 16:29)
 

а еще полезно зубы на ночь чистить... блин
и не плохо бы получать ответы на вопросы ..
как можно научится чему небудь не практикуяся
в книгах не все написано...

   
 
 автор: t4f   (19.02.2007 в 17:11)   письмо автору
 
   для: mindless   (19.02.2007 в 17:00)
 

Ну так практикуйтесь. В некоторых книгах - все написано. Если хотите освоить ООП, то приобретите литературу именно про ООП. Даже если там другой язык описан. Например, по джава.
$this-> лучше использовать тогда, когда используются приватные члены класса. Кстати, тоже ненадо забывать, что класс это именно АТД, а не что-либо другое.

А зубки-то чистить и утром надо :)

   
 
 автор: ZuArt   (19.02.2007 в 17:44)   письмо автору
 
   для: t4f   (19.02.2007 в 17:11)
 

по поводу обращения к приватным членам класса - именно применительно к PHP с Вами не соглашусь. В PHP 4 версии нет таких понятий, как приватные/публичные члены класса. Все определенные свойства/функции класса являются публичными и обратиться к ним всегда можно записью $obj->var или $obj->func(...).
А зачем использовать $this-> я написал выше.

   
 
 автор: t4f   (19.02.2007 в 17:50)   письмо автору
 
   для: ZuArt   (19.02.2007 в 17:44)
 

Лично меня не интересует ООП в PHP 4 версии. И если изучать ООП, то нормальную модель. А то так и будут в пятой, шестой, седьмой и даже в восьмой версии писать как в четвертой. Пора уже на пятую версию перейти. Как я уже написал выше, $this-> используется для обращения к внутренним членам класса.

   
 
 автор: ZuArt   (19.02.2007 в 17:57)   письмо автору
 
   для: t4f   (19.02.2007 в 17:50)
 

а я еще раз повторю... $this-> используется для ОДНОЗНАЧНОГО трактования к какому именно объекту идет обращение внутри функции класса!!!

class CLASS
{
 var $Var;  // неважно ее видимость извне (public/private)

 function CLASS()
 {
  $this->Var = 6;
 }

 function Func(...)
 {
  $Var = 5;

  echo $Var; // будет напечатано 5
  echo $this->Var; // выведет 6
 }
}

   
 
 автор: t4f   (19.02.2007 в 18:07)   письмо автору
 
   для: ZuArt   (19.02.2007 в 17:57)
 

$this-> используется для обращения к внутренним членам класса
Это выражение как раз подразумевает, что член класса принадлежит к данному классу. Или это не так?

   
 
 автор: isset   (19.02.2007 в 18:54)   письмо автору
 
   для: t4f   (19.02.2007 в 18:07)
 

к данному объекту класса

   
 
 автор: t4f   (19.02.2007 в 18:57)   письмо автору
 
   для: isset   (19.02.2007 в 18:54)
 

ну да... разве это непонятно?

   
 
 автор: ZuArt   (19.02.2007 в 17:41)   письмо автору
 
   для: mindless   (19.02.2007 в 16:12)
 

Объясню вкратце. Т.к. в PHP 4 ООП на зачаточном уровне, то там реализован простейший функционал.

$this-> используется для обращения к свойствам и функциям КЛАССА, описанных в классе


class CLASS
{
 var $Var;
 function Func(...)
 {

 }
};


При обращении к переменной/функции БЕЗ $this-> в функции класса, обращение идет к переменной внутри функции или к ГЛОБАЛЬНОЙ переменной/функции, а не к переменной/функции класса.

Это самое первое что надо запомнить =), т.к. самое спотыкучее место... Вроде обращаешься к переменной класса, но без $this-> обращение идет к пустой (или определенной внутри функции) переменной и полученное из нее значение не то, которое нужно.

   
 
 автор: cheops   (19.02.2007 в 18:58)   письмо автору
 
   для: mindless   (19.02.2007 в 16:12)
 

$this используется для доступа к членам класса, $this->name и $name две разные переменные.

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования