致命错误:Can';t在第79行的/home/gdcrpgin/public_html/manage_mypage.php中的write上下文中使用函数返回值
致命错误:无法在第79行的/home/gdcrpgin/public\u html/manage\u mypage.php中的写上下文中使用函数返回值 整个web项目一直运行良好,直到它出现在我的本地windows计算机上,因为我将它上载到在线linux服务器(Hostgator)上。我的一个页面开始显示此错误。我不知道此错误是什么意思。我尝试在我的级别对其进行故障排除,但没有取得任何效果 第79行是致命错误:Can';t在第79行的/home/gdcrpgin/public_html/manage_mypage.php中的write上下文中使用函数返回值,php,html,mysql,function,Php,Html,Mysql,Function,致命错误:无法在第79行的/home/gdcrpgin/public\u html/manage\u mypage.php中的写上下文中使用函数返回值 整个web项目一直运行良好,直到它出现在我的本地windows计算机上,因为我将它上载到在线linux服务器(Hostgator)上。我的一个页面开始显示此错误。我不知道此错误是什么意思。我尝试在我的级别对其进行故障排除,但没有取得任何效果 第79行是 <input type="text" name="home" class="form-c
<input type="text" name="home" class="form-control" maxlength="60" value = "<?php if(!empty(getuserfield($conn,"home"))) echo getuserfield($conn,"home") ?>" required>
一个关于你问题的谷歌查询让我找到了你问题的解决方案(可能)。如果这确实是答案,你可能会因为来这里之前没有做任何研究而感到内疚,真丢脸 您可以在此处找到解决方案: 您可能正在运行旧版本的php。这似乎很有可能,因为您的应用程序以前可以工作,而现在它不在“新”环境中。函数
empty()
因此,要解决您的问题,请安装更新版本的PHP empty
用于测试变量是否不存在或是否错误。在函数的返回值上使用它。这些是不相容的用途。去掉空的,这里不需要它if(getuserfield(..)
对函数执行完全相同的操作
它恰好在另一台服务器上工作,因为自PHP5.5以来,empty
也接受任何类型的表达式。您的一个服务器使用PHP5.5,另一个服务器使用更老的版本。尽管这里仍然多余地使用了empty
您应该始终了解用于开发的PHP版本,以及要部署到的位置,这两个版本应该是相同的,或者至少是相同的主要发布版本。这是唯一一个出现错误的地方吗?是的,这是唯一一个出现错误的页面,但是如果我注释掉第79行,那么第85行会出现相同的错误,我不认为hostgator会允许我在他们的页面上安装新版本的PHP服务器和我真的不想降级我的网站和改变几乎3 KLOC我已经在网络项目中使用了很多次这种技术,我确实搜索了错误,但没有找到任何关于不兼容的线索如果你按照我提供的链接,你会看到你正在做其他问题的海报所问的同样的事情。他们正在运行什么版本的PHP?如果你发现他们运行的是一个旧版本,你应该问问自己,你到底为什么要在那里托管你的应用程序。如果您需要在那里运行它,而他们不想安装新版本,那么您将被迫降级,但再次,如果这些是你的限制,你显然不应该在更新的版本上开发你的应用程序。HostGator允许你更新版本:感谢dude提供他们运行PHP5的信息,实际上这是我的第一个web项目,对我来说太大了。之前我用PHP5.5编写了一些小应用程序,并且在托管方面没有问题把它们放在鳄鱼身上。你的信息救了我一天的命。现在我不必回头用PHP5.0标准重新编码了。你的第一段没有什么意义,但其他两段完全有意义,我完全同意。您可以看到,我在文本框的value属性中调用了该函数,它从db返回值。如果该特定字段的db中没有任何值,它将用html格式的php错误填充文本框value属性。“无意义”?!哇,嗯,非常感谢。您可能需要阅读以下内容:
function getuserfield($conn,$field)
{
/*
$table = $_SESSION['type'];
$key = $_SESSION['key'];
$user = $_SESSION['username'];
$query = "select $field from $table where $key = '$user'";
$query_run = mysqli_query($conn,$query) or die(mysqli_error($conn));
while($fetch = mysqli_fetch_array($query_run)){
if(!empty($fetch[0]))
return $fetch[0];
else
return null;
}*/
return "Fake";
}