$this self static increment

PHP Programowanie Teoria dodano: 29.05.2019
EDYCJA 30.05.2019

this self parent static increment
pseudozmienna $this
1. Odniesienie do zmiennych publicznych, prywatnych lub chronionych obrębie klasy.
2. Odniesienie do metod publicznych, prywatnych lub chronionych obrębie klasy.
Odnosi się do danej instancji obiektu. Oznacza to, że chcąc odwołać się do niestatycznego pola używamy $this -> pole.
Używane w getterach i setterach.

self::
1. Odniesienie do zmiennych STATYCZNYCH publicznych, prywatnych lub chronionych obrębie (tej samej) klasy.
2. Odniesienie do metod STATYCZNYCH publicznych, prywatnych lub chronionych obrębie (tej samej) klasy.
Gdy odwołujemy się do statycznego pola klasy to wtedy używamy self::pole.

parent::
1. Odniesienie do zmiennych STATYCZNYCH publicznych, prywatnych lub chronionych obrębie KLASY DZIEDZICZĄCEJ.
2. Odniesienie do metod STATYCZNYCH publicznych, prywatnych lub chronionych obrębie KLASY DZIEDZICZĄCEJ.

static może być wywołany bez instancji klasy. Dotyczy się to pól i metod.


Istnieje możliwość nadpisywania lub wywoływania konstruktorów, destruktorów lub innych metod magicznych z poziomu self, parent i jeśli jesteśmy w tej samej klasie $this.
  1. class A{
  2. public $variable_A;
  3. public static $variable_B = 'static variable';
  4.  
  5. public function getA(){
  6. return $this->variable_A;
  7. }
  8.  
  9. public function getMethodA(){
  10. return $this->getA();
  11. }
  12.  
  13. public function getSelf_B(){
  14. return self::$variable_B;
  15. }
  16.  
  17. public static function getStatic_B(){
  18. return static::$variable_B;
  19. }
  20.  
  21. public static function getStaticMethod(){
  22. return static::staticTest();
  23. }
  24.  
  25. public static function staticTest(){
  26. return 'Test static method';
  27. }
  28. }
  29.  
  30. $object = new A;
  31. $object->variable_A = 'test variable a';
  32.  
  33. echo $object->getA(); // 'test variable a'
  34. echo $object->getMethodA(); // 'test variable a'
  35.  
  36. echo $object->getSelf_B(); // static variable
  37. echo $object->getStatic_B(); // static variable

  1. class MyClass {
  2. private $firstField;
  3. private $secondField;
  4.  
  5. public function getFirstField() {
  6. return $this->firstField;
  7. }
  8. public function setFirstField($x) {
  9. $this->firstField = $x;
  10. }
  11. public function getSecondField() {
  12. return $this->secondField;
  13. }
  14. public function setSecondField($x) {
  15. $this->secondField = $x;
  16. }
  17. }

Magiczne metody: __get i __set:

  1. class MyClass {
  2. private $firstField;
  3. private $secondField;
  4.  
  5. public function __get($property) {
  6. if (property_exists($this, $property)) {
  7. return $this->$property;
  8. }
  9. }
  10.  
  11. public function __set($property, $value) {
  12. if (property_exists($this, $property)) {
  13. $this->$property = $value;
  14. }
  15. return $this;
  16. }
  17. }

  1. class Products{
  2. static $name = "XYZ";
  3. static function showName(){
  4. echo self::$nazwa;
  5. }
  6. }
  7. echo Products::$name;
  8. Products::showName();

  1. class User{
  2. public static $static = 0;
  3. public static function staticMethod(){
  4. return self::$static;
  5. }
  6. public static function increment(){
  7. return self::$static++;
  8. }
  9. }
  10. echo User::$static; // 0
  11. echo User::staticMethod(); // 0
  12. echo User::increment(); // 0
  13. echo User::increment(); // 1
  14.  
  15. class User2{
  16. public static $static = 0;
  17. public static function staticMethod(){
  18. return self::$static;
  19. }
  20. public static function increment(){
  21. return ++self::$static;
  22. }
  23. }
  24. echo User2::$static; // 0
  25. echo User2::staticMethod(); // 0
  26. echo User2::increment(); // 1
  27. echo User2::increment(); // 2


Losowe zdjęcia


O sobie


gawronski
A.D. 2016

Lubię jazdę na rowerze, wspinaczkę, czytać książki i biegać. Studiowałem mechanikę i budowę maszyn oraz psychologię. Nie zostałem inżynierem ani psychologiem.