Una clase es un tipo de datos definido por el usuario que contiene sus propios miembros de datos y funciones de miembros a los que se puede acceder y utilizar creando una o más instancias de esa clase. Cada vez que se crea una instancia de una clase, los valores que contiene son diferentes y únicos para la instancia u objeto en particular y no para esa clase. Las clases estáticas generan una propiedad en la que una clase en sí misma tiene valores que siguen siendo los mismos y no son únicos. Otra propiedad de las Static Classes es que podemos hacer lo anterior sin tener que crear una instancia de la clase.
¿Cómo crear una clase estática?
Es bastante simple. Las variables y los métodos que se declaran y definen dentro de una clase deben declararse como estáticos con el uso de la palabra clave estática , de modo que puedan usarse sin instanciar primero la clase.
Un punto importante a tener en cuenta aquí es que, dado que esto significa que se puede acceder a una variable de clase sin una instancia específica, también significa que solo habrá una versión de esta variable. Otra consecuencia es que un método estático no puede acceder a variables y métodos no estáticos ya que estos requieren una instancia de la clase.
Para acceder a la clase estática y su método, use la siguiente sintaxis:
ClassName::MethodName();
Ejemplo 1: el siguiente código devuelve la fecha actual sin instanciar la clase Fecha. En este caso, el formato de la fecha y no la fecha real sigue siendo el mismo.
PHP
<?php class Date { public static $date_format1 = 'F jS, Y'; public static $date_format2 = 'Y/m/d H:i:s'; public static function format_date($unix_timestamp) { echo date(self::$date_format1, $unix_timestamp), "\n"; echo date(self::$date_format2, $unix_timestamp); } } echo Date::format_date(time()); ?>
Output: April 30th, 2020 2020/04/30 10:48:36
Ejemplo 2: el siguiente código comprueba si la string es válida o no. Es válido si su longitud es igual a 13.
PHP
<?php class geeks { public static $x = 13; public static function isValid($s) { if(strlen($s) == self::$x ) return true; else return false; } } $s1 = "geeksforgeeks"; if(geeks::isValid($s1)) echo "String is valid! \n"; else echo "String is NOT valid! \n"; $s2 = "geekforgeek"; if(geeks::isValid($s2)) echo "String is valid!\n "; else echo "String is NOT valid! \n"; ?>
Producción:
String is valid! String is NOT valid!
Publicación traducida automáticamente
Artículo escrito por ShivangiMeena y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA