PHP除零错误,没有数学存在?

时间:2014-02-09 19:45:48

标签: php session

Warning: Division by zero in ..\session.php on line 2

将我的PHP更新到我的主机允许的最新版本(5.5.9)后,会话路径出现了一个小问题,因此我必须在session_start()之前包含一小段代码来修复它。然而,这个奇怪的错误正在发生,显然它认为我试图除以零?我想知道如何解决这个问题,如果有可能,我认为这只是PHP愚蠢。

谢谢! :)

以下是前几行代码

<?php
session_save_path(“/tmp”);
session_start();
//error_reporting(0);

编辑:使用下面的代码解决了这个问题

session_save_path(realpath(dirname($_SERVER['DOCUMENT_ROOT']) . '/../session'));
ini_set('session.gc_probability', 1);

2 个答案:

答案 0 :(得分:4)

这是所用报价的差异。 PHP认为您正在尝试将字符串除以另一个字符串。将其更改为常规双引号,问题将得到解决。

现在,这就是PHP所看到的:

“/tmp”
^--- first string
 ^--- division operator
  ^^^^--- second string

操作前的string is cast to an int,有效地将双方都转为0,从而导致Division by zero警告。如果你有enabled error reporting,你就会发现这一点。

答案 1 :(得分:1)

你有聪明的报价。

因此,您的代码被解释为:

  • 不带引号的字符串文字
  • 除以......
  • 不带引号的字符串文字tmp“

分部强制转换为数字,双方都被归为零,结果为0/0