metodos - public function php
visibilidad constante de la clase php (7)
¿Podemos establecer la visibilidad de la clase constante? Por ej.
class MyClass {
const CONST_VALUE = ''A constant value'';
}
para esta clase podemos escribir
public const CONST_VALUE = ''A constant value'';
o
private const CONST_VALUE = ''A constant value'';
o
protected const CONST_VALUE = ''A constant value'';
A partir de PHP7.1 modificadores de visibilidad están permitidos para las constantes de clase, en versiones anteriores no es posible establecer la visibilidad de las constantes en una clase. Siempre son públicos. Vea los comentarios en http://www.php.net/manual/en/language.oop5.constants.php para obtener más información.
Actualización: se han agregado modificadores de visibilidad para las constantes en PHP 7.1 (lanzado el 1 de diciembre de 2016). Ver el RFC: Clase de soporte Visibilidad constante .
La sintaxis se ve así:
class ClassName {
private const PRIVATE_CONST = 0;
protected const PROTECTED_CONST = 0;
public const PUBLIC_CONST = 0;
}
Ahora es posible en PHP 7.1 lanzado hoy Alpha que agrega modificadores de visibilidad constante de clase
En la última versión de PHP (PHP 7.1.0) estará disponible.
La sintaxis de muestra era como.
class Token {
// Constants default to public
const PUBLIC_CONST = 0;
// Constants then also can have a defined visibility
private const PRIVATE_CONST = 0;
protected const PROTECTED_CONST = 0;
public const PUBLIC_CONST_TWO = 0;
//Constants can only have one visibility declaration list
private const FOO = 1, BAR = 2;
}
Consulte el siguiente enlace. https://wiki.php.net/rfc/class_const_visibility
Es posible en php 7.1.0. Por favor visite PHP RFC: Clase de soporte Visibilidad constante
Los modificadores no están permitidos para constantes en php. Puedes usar
public static $variable = "abc";
Pero lamentablemente la final
no está permitida aquí.
Una alternativa sería utilizar un método constante, por ejemplo,
private static function gravitationalConstant() {
return 9.81;
}
Cita del libro Refactoring de Fowler :
Este lenguaje es menos familiar para los programadores basados en C, pero es muy familiar para los Smalltalkers (que no tenían constantes en su idioma). En general, no tiendo a usar esto en Java, ya que es menos idiomático para el lenguaje. Sin embargo, si necesita reemplazar el rendimiento simple con un valor calculado, entonces vale la pena cambiar el campo constante a un método constante. (Supongo que debería haber una refactorización para eso ...)