You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 09:20:18