为了账号安全,请及时绑定邮箱和手机立即绑定

尝试访问 int 类型值的数组偏移量 { DefaultValueBinder. }

尝试访问 int 类型值的数组偏移量 { DefaultValueBinder. }

PHP
慕桂英546537 2023-06-24 18:17:23
我有一个导出到 Excel 按钮,可以下载 Excel 文件。但是,当我单击时,它显示错误为尝试访问 int 类型值的数组偏移量我的代码是这样的:public static function dataTypeForValue($pValue = null)    {        // Match the value against a few data types        if ($pValue === null) {            return PHPExcel_Cell_DataType::TYPE_NULL;        } elseif ($pValue === '') {            return PHPExcel_Cell_DataType::TYPE_STRING;        } elseif ($pValue instanceof PHPExcel_RichText) {            return PHPExcel_Cell_DataType::TYPE_INLINE;  } elseif ($pValue[0] === '=' && strlen($pValue) > 1) {   //error comes in this line            return PHPExcel_Cell_DataType::TYPE_FORMULA;        } elseif (is_bool($pValue)) {            return PHPExcel_Cell_DataType::TYPE_BOOL;        } elseif (is_float($pValue) || is_int($pValue)) {            return PHPExcel_Cell_DataType::TYPE_NUMERIC;        } elseif (preg_match('/^[\+\-]?([0-9]+\\.?[0-9]*|[0-9]*\\.?[0-9]+)([Ee][\-\+]?[0-2]?\d{1,3})?$/', $pValue)) {            $tValue = ltrim($pValue, '+-');            if (is_string($pValue) && $tValue[0] === '0' && strlen($tValue) > 1 && $tValue[1] !== '.') {                return PHPExcel_Cell_DataType::TYPE_STRING;            } elseif ((strpos($pValue, '.') === false) && ($pValue > PHP_INT_MAX)) {                return PHPExcel_Cell_DataType::TYPE_STRING;            }            return PHPExcel_Cell_DataType::TYPE_NUMERIC;        } elseif (is_string($pValue) && array_key_exists($pValue, PHPExcel_Cell_DataType::getErrorCodes())) {            return PHPExcel_Cell_DataType::TYPE_ERROR;        }        return PHPExcel_Cell_DataType::TYPE_STRING;    }}这个问题的解决方案是什么..?
查看完整描述

3 回答

?
弑天下

TA贡献1818条经验 获得超8个赞

在 PHPExcel 文件“DefaultValueBinder.php”中,替换以下第 82 行:

} elseif ($pValue[0] === '=' && strlen($pValue) > 1) {

具有以下内容:

} elseif (0 === strpos($pValue, '=') && strlen($pValue) > 1) {


查看完整回答
反对 回复 2023-06-24
?
慕尼黑8549860

TA贡献1818条经验 获得超11个赞

(!is_int($pValue) && $pValue[0] === '=' && strlen($pValue) > 1)应该管用。$pValue[0]不适用于整数,因此在继续之前请检查它是否是 int。



查看完整回答
反对 回复 2023-06-24
?
莫回无

TA贡献1865条经验 获得超7个赞

我更新了库中的一些文件,它在 php 7.4 上对我来说工作得很好。

查看完整回答
反对 回复 2023-06-24
  • 3 回答
  • 0 关注
  • 229 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信