Erro "Can't use method return value in write context" em PHP: causas e solução
Olá a todos. Sou novo em PHP e me deparei com um erro estranho. Estou escrevendo um script simples para verificar se o usuário tem direitos de administrador. Uso uma função que retorna um objeto de usuário e tento verificar sua property.
Aqui está meu código:
```php
class User {
public $role;
public function __construct($role) {
$this->role = $role;
}
}
function getUser() {
// suponha que o usuário foi encontrado no BD
return new User('admin');
}
if (getUser()->role = 'admin') {
echo 'Você é administrador!';
} else {
echo 'Você não tem direitos de administrador.';
}
```
Mas, em vez do resultado esperado, recebo um fatal error:
> **Fatal error**: Can't use method return value in write context
Por que isso acontece? Parece tudo lógico: eu obtenho o objeto e verifico sua property. O que estou fazendo de errado? Como escrever essa verificação corretamente?
Tentei várias opções: coloquei parênteses, mudei a ordem — nada resolve. O erro ocorre mesmo assim.