Error "Can't use method return value in write context" en PHP: causas y solución
Hola a todos. Soy nuevo en PHP y me encontré con un error extraño. Estoy escribiendo un script simple para verificar si un usuario tiene permisos de administrador. Uso una función que devuelve un objeto de usuario e intento verificar su propiedad.
Aquí está mi código:
```php
class User {
public $role;
public function __construct($role) {
$this->role = $role;
}
}
function getUser() {
// supongamos que el usuario se encuentra en la BD
return new User('admin');
}
if (getUser()->role = 'admin') {
echo '¡Eres administrador!';
} else {
echo 'No tienes permisos de administrador.';
}
```
Pero en lugar del resultado esperado, obtengo un error fatal:
> **Fatal error**: Can't use method return value in write context
¿Por qué ocurre esto? Parece lógico: obtengo un objeto y verifico su propiedad. ¿Qué estoy haciendo mal? ¿Cómo escribir correctamente esta verificación?
He probado diferentes variantes: puse paréntesis, cambié el orden, nada ayuda. El error ocurre exactamente