Путаница в синтаксисе

akxxiv

Новичок
Путаница в синтаксисе

Доброе время суток.
У меня кажется получилась каша в голове. Спутал возможности php 5 с невозможностью php 4. Прошу поправить меня в моем изложении.

1. В рнр5 есть возможность в классе или в пространстве имен определять методы и эти как их там, короче "переменные класса" (далее буду их так называть), как static. А в рнр4 статическими могут быть только переменные функции. Я прав? А как сделать чтобы статическим была "переменная класса". Пытался сделать так:
PHP:
class test{
   var $t
   function test() //Конструктор класса
   {
         static t;
         $this->t = & t;
   }
}
Вроде бы даже получается. Но может есть к.л. др. вариант???

2. В рнр5 до переменной $t, не создавая объект я могу достучаться test::$t, а вот в php4 данная операция вызывает ошибку как изнутри данного класса так и вне его. Кроме того если я пытаюсь получить данную переменную из к.л. функции внутри оного пространства имен с помощью self::$t, рнр4 мне заявляет что self вообще не определена.
Хотя к любой функции данного пространств имен, например какой-нибудь test::test2() вполне можно обратиться.

Как в рнр4 можно обратиться к переменной определенной в классе (в пространстве имен) при этом не создавая новый объект?
 

Messie

Guest
tony2001 прав, в PHP4 поддержка ООП очень хилая
 

akxxiv

Новичок
Да я бы использовал, но меня настораживает один факт. На большенстве хостингах рнр5 установлен (если установлен) в CGI режиме. Я никогда не работал с CGI. Какиме могут быть подводные камни?
 

akxxiv

Новичок
Автор оригинала: tony2001
ну так выбери себе нормальный хостинг.
Так попадаются индивиды, которые хотят чтобы им сделали сайт на конкретном хостинге, там у них проплачено на год вперед. Хотя наверное ты прав.

А по поводу первых двух вопросов - действительно нельзя test::$t и self::$t
 

Gorynych

Посетитель PHP-Клуба
akxxiv
разницы в обращении к членам класса нет. Вариат установки как cgi в сочетании с запуском от имени уникального пользователя скорее более безопастный, чем наоборот.

поддержка статических (static) методов и данных - это именно PHP5. Писать на PHP5 объектно-ориентированный код совместимый с PHP4 нелогично. Скажем так - Вы при этом отказываетесь от массы возможностей и работаете с "кастрированным" вариантом поддержки классов. Кроме того в этих версиях принципиально разная модель обращения (копированием VS. по ссылке).

можно сказать, что PHP4 поддерживает оформление кода в стиле объектной ориентации, а PHP5 поддерживает объектно-ориентированное программирование.
 
Сверху