самостоятелно срещу това в PHP

PHP поддържа класове и други обектно-ориентирани конструкции. себе ситоваМоже да се използва в статични функции да Не достъпна променлива клас и методи с самостоятелно :: $ this-> (Обърнете внимание, че PHP> 5.3 позволява използването на $ this със статични променливи, използвайте $ this :: $ foo. $ this-> foo все още ще бъде неопределен, ако $ foo е статичен вар.) Нуждае се от инстанциран обект Не да

самостоятелно срещу това в PHP - Примери

class exampleClass public static $ foo; публичен $ бар; публична функция regularFunction () echo $ this-> bar;  публична статична функция staticFunction () echo self :: $ foo;  публична статична функция elseStatFn () self :: staticFunction ();  публична функция regularFnUsingStaticVar () echo self :: $ foo;  // ЗАБЕЛЕЖКА: От PHP 5.3 използване на $ this :: $ bar вместо self :: $ bar е разрешено exampleClass :: $ foo = "Здравей"; $ obj = нов примерClass (); $ obj-> bar = "Свят!"; exampleClass :: staticFunction (); / * отпечатва Hello * / $ obj-> regularFunction (); / * отпечатва света! * / 

Статичните функции могат да използват само статични променливи. Статичните функции и променливи се позовават чрез самостоятелно ::functionName () или самостоятелно ::variableName. В показания по-горе пример, статичните променливи се позовават с името на класа (exampleClass :: $ foo) или с a самостоятелно :: (self :: $ foo), когато се използва в статичния метод [с име staticFunction ()] на класа.

Редовните функции и променливи на клас се нуждаят от контекст на обекта, за да бъдат реферирани. Те не могат да съществуват без обективен контекст. Обектният контекст се осигурява от $ това. В горния пример $ bar е редовна променлива и затова се отнася като $ obj-> bar (в контекста на обекта с променлива OBJ) или като $ this-> bar (отново в контекст на обект в метод на обект).

себе си не използва предходно $ защото себе си не конотира променлива, а самата конструкция на класа. $ това прави препратка към конкретна променлива, така че има предходна $.

Препратки

  • Статична ключова дума - PHP.net