mina vs see PHP-s

PHP toetab klasse ja muid objektorienteeritud konstruktsioone. iseseeSaab kasutada staatilistes funktsioonides Jah Ei juurdepääsetav klassimuutuja ja meetodid ise :: $ this-> (Pange tähele, et PHP> 5.3 lubab staatiliste muutujatega $ this kasutada $ = :: foo. $ this-> foo jääb ikkagi määramata, kui $ foo on staatiline muutuja.) Vajab kiirendatud objekti Ei Jah

mina vs see PHP-s - näited

klassi näideClass public static $ foo; avalik $ baar; avalik funktsioon regularFunction () echo $ this-> bar;  avalik staatiline funktsioon staticFunction () kaja ise :: $ foo;  avalik staatiline funktsioon elseStatFn () self :: staticFunction ();  avalik funktsioon regularFnUsingStaticVar () kaja ise :: $ foo;  // MÄRKUS. Alates PHP 5.3-st on $ $: :: riba asemel $ this :: $ riba kasutamine: $ bar on lubatud exampleClass :: $ foo = "Tere"; $ obj = uus näideKlass (); $ obj-> bar = "Maailm!"; exampleClass :: staticFunction (); / * prindib Tere * / $ obj-> regularFunction (); / * prindib maailma! * / 

Staatilised funktsioonid saavad kasutada ainult staatilisi muutujaid. Staatilistele funktsioonidele ja muutujatele viidatakse ise ::functionName () või ise ::muutujaNimi. Ülaltoodud näites viidatakse staatilistele muutujatele klassi nimega (exampleClass :: $ foo) või ise :: (ise :: $ foo), kui seda kasutatakse staatilises meetodis [nimega staticFunction ()] klassist.

Klassi tavapärased funktsioonid ja muutujad vajavad viidet objekti kontekstile. Need ei saa eksisteerida ilma objekti kontekstita. Objekti konteksti pakub $ see. Ülaltoodud näites on $ bar tavaline muutuja ja seetõttu viidatakse sellele kui $ obj-> bar (muutujaga objekti kontekstis obj) või kui $ this-> riba (jälle objekti kontekstis objekti meetodi piires).

ise ei kasuta eelnevat $ sest ise ei nimeta muutujat, vaid klassi konstrukti ise. $ see viitab konkreetsele muutujale, nii et sellel on eelnev $.

Viited

  • Staatiline märksõna - PHP.net