我只是试验PHP试图让它找到目录中使用了多少字节,并将其转换为兆字节。 “totalSpace变量将回显大量的字节,但当我尝试回应”newValue“之后,它只是给出了或者消息。它可能是简单的,但我对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和其他来源上寻找这个问题的答案,但实际上找不到任何东西。我在这里做错了什么?
答案 0 :(得分:2)
==
测试两个值是否相等,它们是否相等。要使变量等于表达式,请使用赋值。
$newValue = $totalSpace / 1048576;
此外,echo
无论打印的是什么都会返回undefined
,因此将or die("Error")
放在其后面是没有意义的。它永远不会失败,因此它不会返回表示成功或失败的值。只是做:
echo $newValue;
答案 1 :(得分:2)
正如Barmar指出的那样,你永远不会将$newValue
分配给任何东西,因此它是未定义的。它未定义的原因是因为这一行没有分配任何东西
$totalSpace / 1048576 == $newValue;
这是一个评估声明,其中使用==
表示:
$totalSpace
除以1048576
等于$newValue
您要做的是使用$newValue
像这样
=
$newValue = $totalSpace / 1048576;
要添加此答案以帮助您自己解决这些问题,我会启用错误报告,以帮助您在开发和学习时查看错误,警告和通知。它们通常在php.ini中默认关闭,可以帮助您更深入地了解事情可能无法正常工作的原因。您可以在文件顶部添加这两行,以便在每次脚本执行时覆盖它们。
ini_set('display_errors', 1);
error_reporting(E_ALL);
或在 php.ini 设置
内display_errors = on
如果你有这个,你就会看到这些内容
E_NOTICE : type 8 -- Undefined variable: newValue -- at line 6
E_NOTICE : type 8 -- Undefined variable: newValue -- at line 9
抱怨正在访问但未定义的变量。