селф вс. ово у ПХП-у

ПХП подржава класе и друге објектно оријентисане конструкције. јаовоМоже се користити у статичким функцијама да Не варијабла приступачне класе и методе са селф :: $ тхис-> (имајте на уму да ПХП> 5.3 дозвољава употребу $ тхис са статичким променљивим употребљава $ тхис :: $ фоо. $ тхис-> фоо ће и даље бити дефинисан ако је $ фоо статички вар.) Потребан је инстанцирани објект Не да

Селф вс тхис у ПХП - Примери

цласс екамплеЦласс публиц статиц $ фоо; јавни $ бар; јавна функција регуларФунцтион () ецхо $ тхис-> бар;  јавна статичка функција статицФунцтион () ецхо селф :: $ фоо;  јавна статичка функција елсеСтатФн () селф :: статицФунцтион ();  јавна функција регуларФнУсингСтатицВар () ецхо селф :: $ фоо;  // НАПОМЕНА: Од ПХП 5.3 коришћењем $ тхис :: $ бар уместо селф :: $ бар је дозвољено екамплеЦласс :: $ фоо = "Хелло"; $ обј = нови примерЦласс (); $ обј-> бар = "Свет!"; екамплеЦласс :: статицФунцтион (); / * исписује Хелло * / $ обј-> регуларФунцтион (); / * штампа свет! * / 

Статичке функције могу користити само статичке променљиве. Статичке функције и променљиве се позивају путем селф ::фунцтионНаме () или селф ::вариаНаме. У горњем примеру, статичке променљиве се позивају са називом класе (екамплеЦласс :: $ фоо) или са а селф :: (селф: $ фоо) када се користи унутар статичке методе [под називом статицФунцтион ()] класе.

Редовне функције и варијабле класе требају референцирати објектни контекст. Они не могу постојати без објектног контекста. Контекст објекта пружа $ ово. У горњем примеру, $ бар је редовна променљива, па се наводи као $ обј-> бар (у објектном контексту са променљивом обј) или као $ тхис-> бар (опет у контексту објекта унутар методе објекта).

ја не користи претходно $ јер ја не конотира променљиву, већ саму конструкцију класе. $ ово односи се на одређену променљиву тако да има претходну $.

Референце

  • Статичка кључна реч - ПХП.нет