Operador de resolución de alcance en PHP

El operador de resolución de alcance, también conocido como Paamayim Nekudotayim o más comúnmente conocido como dos puntos dobles, es un token que permite el acceso a propiedades o métodos estáticos, constantes y anulados de una clase.

Se usa para referirse a bloques o códigos en contexto a clases, objetos, etc. Se usa un identificador con el operador de resolución de alcance. El ejemplo más común de la aplicación del operador de resolución de alcance en PHP es para acceder a las propiedades y métodos de la clase. 

Los siguientes ejemplos muestran el uso del operador de resolución de alcance en varios escenarios.

Ejemplo 1: este tipo de definición se usa al definir constantes dentro de una clase.

PHP

<?php
  
class democlass {
    const PI = 3.14;
}
  
echo democlass::PI;
  
?>

Producción: 

3.14

Ejemplo 2: Se utilizan tres palabras clave especiales self, parent y static para acceder a propiedades o métodos desde dentro de la definición de clase. 

PHP

<?php
  
// Declaring parent class
class demo{
  
    public static $bar=10;
  
    public static function func(){
  
        echo static::$bar."\n";
    }
}
  
// Declaring child class
class Child extends demo{
  
    public static $bar=20;
  
}
  
// Calling for demo's version of func()
demo::func();
  
// Calling for child's version of func()
Child::func();
  
?>

Producción: 

10 
20

Ejemplo 3: cuando una clase extendida anula la función de su padre, el compilador llama a la versión del método de la clase secundaria, pero depende de la clase secundaria llamar a la versión del método de su padre.

PHP

<?php
  
class demo{
  
    public function myfunc() {
        echo "myfunc() of parent class\n ";
    }
}
  
class child extends demo {
  
    public function myfunc(){
  
         // Calling parent's version
         // of myfunc() method
        parent::myfunc();
  
        echo "myfunc() of child class";
    }
}
  
$class = new child;
$class -> myfunc()
  
?>

Producción: 

myfunc() of parent class 
myfunc() of child class

Publicación traducida automáticamente

Artículo escrito por vanshikagoyal43 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *