做完一个方程后,PHP 不会回显答案

  • 本文关键字:PHP 答案 方程 一个 php
  • 更新时间 :
  • 英文 :


我只是在尝试PHP,试图让它找到目录中正在使用的字节数,并将其转换为兆字节。"totalSpace 变量将回显字节的加载,但是当我在让它做一个方程后尝试回显"newValue"时,它只会给出 or die 消息。这可能很简单,但我对PHP或任何其他服务器端或编程语言非常缺乏经验。

<?php
$totalSpace = disk_total_space("./") or die("Error DFS");
echo $totalSpace;
if ($totalSpace > 1048576) {
$totalSpace / 1048576 == $newValue;
}
echo $newValue or die("Error");
?>

我尝试在Stack Overflow和其他来源上寻找这个问题的答案,但实际上找不到任何东西。我在这里做错了什么?

==测试两个值是否相等,但不会使它们相等。若要使变量等于表达式,请使用赋值。

$newValue = $totalSpace / 1048576;

此外,无论echo打印什么,都会返回undefined,因此将or die("Error")放在它之后是没有意义的。它永远不会失败,因此它不会返回指示成功或失败的值。只需做:

echo $newValue;

正如Barmar所指出的,你永远不会$newValue分配给任何东西,所以它是未定义的。 它未定义的原因是因为这行没有分配任何东西

$totalSpace / 1048576 == $newValue;

这是一个评估声明,其中使用==意味着:

$totalSpace除以1048576是否等于$newValue

您要做的是使用以下=$newValue分配变量

$newValue = $totalSpace / 1048576;

为了补充这个答案,以帮助您自己弄清楚这些问题,我会打开错误报告,以帮助在您开发和学习时查看错误、警告和通知。它们通常在 php 中默认关闭.ini可以帮助您更深入地了解为什么事情可能不起作用。 您可以在文件顶部添加这两行,以便在每次脚本执行时覆盖它们。

ini_set('display_errors', 1);
error_reporting(E_ALL);

或在你的php.iniset 中

display_errors = on

如果你有这个,你会看到类似的东西

E_NOTICE : type 8 -- Undefined variable: newValue -- at line 6
E_NOTICE : type 8 -- Undefined variable: newValue -- at line 9

抱怨该变量被访问但从未定义。

最新更新