php - usar - ¿Cómo llamar al método no estático del método estático de la misma clase?
variable no estatica no puede ser referenciada desde un contexto estatico (2)
Debe crear un nuevo objeto dentro del método estático para acceder a métodos no estáticos dentro de esa clase:
class Foo {
public function fun1() {
echo ''non-static'';
}
public static function fun2() {
echo (new self)->fun1();
}
}
Estoy trabajando en el código PHP .
Aquí está el código de ejemplo para explicar mi problema:
class Foo {
public function fun1() {
echo ''non-static'';
}
public static function fun2() {
echo "static" ;
//self::fun1();
//Foo::fun1();
}
}
¿Cómo puedo llamar al método no estático del método estático?
Nota :
Ambas funciones se utilizan en todo el sitio, lo que no se conoce. No puedo hacer ningún cambio en la naturaleza estática / no estática de ellos.
La principal diferencia sería que puede llamar a métodos estáticos para una clase sin tener que crear una instancia de un objeto de esa clase. Por lo tanto, en su método estático intente
Foo $objInst = new Foo();
$objInst->fun1();
Pero no veo cómo esto tendría sentido en cualquier contexto.