[ Miroslav Ćurčić @ 13.10.2009. 18:22 ] @
Mogao bih da se kladim da u starijim verzijama PHPa pristupanje klasnoj promenljivoj koja nije deklarisana proizvodi grešku:
Code:
class Klasa {

  function Nesto() {
      $this->Promenljiva= true;
  }

}


A evo sad na verziji 5.2.9 vidim da to radi bez problema.

Od kad je to postalo neobavezno deklarisati klasne promenljive sa var $Promenljiva; ?
[ dakipro @ 13.10.2009. 18:35 ] @
Ja mislim da sam i na php 4 ovo koristio, kada privremeno trebam nesto iz objekta da debagujem, recimo imam 20 objekata na strani, ali zelim da tacno odredjenom debagujem recimo sql, onda samo ubacim tako $this->debug = 'sql';
i posle na specificnom objektu samo dampujem $obj->debug;
Tako da, nisam siguran, ali mislim da ovo radi vec neko vreme, ako nista drugo, na 5.0 i 5.2 verziji provereno radi kao gore opisano. Barem kod mene
[ vatri @ 13.10.2009. 20:27 ] @
Evo mozda ovde nadjes odg: http://www.php.net/manual/en/language.oop5.properties.php

Ja sam nabrzinu ovo nasao:
"However, var is no longer required. In versions of PHP from 5.0 to 5.1.3, the use of var was considered deprecated and would issue an E_STRICT warning, but since PHP 5.1.3 it is no longer deprecated and does not issue the warning. "
[ agvozden @ 13.10.2009. 22:06 ] @
var is deprecated, nema direktne veze sa ovim pitanje.

naime, od verzije 5 koriste se deklaracije public, private, protected, kasnije static, abstract...

mene ponekad nervira sto nemogu da deklarisem promenljivu po tipu... *int, char....

Kod pisem striktno, koristim generator klasa za osnovnu postavku, tako da nisam ni primetio da nije potrebno predefinisanje...
[ Nikola Poša @ 13.10.2009. 22:08 ] @
To može da prođe samo u PHP-u. U svim drugim jezicima je potrebno eksplicitno deklarisanje člana klase, a to bi trebalo da bude praksa i u PHP-u.

I kad si već spomenuo ključnu reč var, mnogo je bolje da se umesto nje koriste private, protected i public, drugim rečima, PHP 5 sintaksa. Kad u definiciji nekog člana klase staviš var, PHP 5 na to gleda kao public. Retko kad ćeš imati potrebu da neku promenljivu u klasi deklarišeš kao javnu, jer obično se teži ostvarivanju te enkapsulacije - jednom od tri postulata OOP-a, a to upravo postižeš koristeći ključne reči private i protected.