在做了等式之后,PHP将不会回应答案

时间:2018-05-19 01:20:17

标签: php

我只是试验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和其他来源上寻找这个问题的答案,但实际上找不到任何东西。我在这里做错了什么?

2 个答案:

答案 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

抱怨正在访问但未定义的变量。