PHP报错:无法在写入上下文中使用方法返回值 问题求助
问题排查与解决:“无法在写入上下文中使用方法返回值”
错误原因
报错的核心是错误地将方法调用当作可赋值变量使用。你的代码中:
$user->set_State() = 0; $user->set_State() = 1;
set_State()是一个方法(函数),PHP不允许直接给方法的返回值赋值——这就像试图给echo("test")赋值一样,逻辑上不成立。正确的做法是把要设置的状态值作为参数传递给set_State方法。
修复后的代码
<?php include("Emp.php"); $Email = $_GET["id"]; User::FileLoader(); foreach (User::$userlist as $user) { if ($user->get_Email() == $Email) { if ($user->get_State() == 1) { $user->set_State(0); } else if ($user->get_State() == 0) { $user->set_State(1); } // 补充提示:如果User类需要持久化修改,这里可能需要调用保存方法,比如$user->save(); } } header("location:liste.php");
额外优化建议
状态切换(0和1互转)可以简化成一行代码,避免重复的条件判断:
if ($user->get_Email() == $Email) { $user->set_State(1 - $user->get_State()); }
这样无论当前状态是0还是1,都能直接切换到另一个值,代码更简洁。
内容的提问来源于stack exchange,提问作者Ranala Manaja
相关产品推荐
相关产品推荐

