bien tengo este código, que estoy estudiandoestáticos y no estáticos Llamada en PHP
class scope{
function printme(){
return "hello";
}
public static function printme(){
return "hello";
}
}
$s = new scope();
echo $s->printme(); //non-static call
echo "<br>";
echo scope::printme(); //static call
Ahora, esto no es realmente el código de mi proyecto pero estas son las cosas que quiero hacer
- Quiero crear una clase que contendrá funciones estáticas y no estáticas.
- Quiero que una función esté disponible tanto en llamadas estáticas como no estáticas.
Como la función no estática tiene muchas operaciones en ella, también necesito llamarla como una función estática para que no necesite crear una instancia de la clase. es posible? o realmente necesitaba reescribir la función para otra función o clase?
NOTA: dime si ya estoy haciendo una mala programación.
Pero si llamo al método no estático del método estático usando self :: works. ¿por qué? –
Php le permitió hacer eso, eso no significa que deba hacer eso. self :: funciona porque su método no estático no usa $ this, si usa $ this inside, no debería estar funcionando. – xdazz
@RNKushwaha Si llama al método no estático desde el método estático, si el método no estático usa $ this, 'Error fatal: Error no capturado: usar $ this cuando no está en el contexto del objeto' sucederá, si el método no estático lo hace no usando $ this, 'PHP desaprobado: prueba de método no estático :: foo() no debería ser llamado estáticamente' sucederá. – xdazz