PHP致命错误:未捕获错误:字符串不支持[]运算符

时间:2018-08-20 17:40:53

标签: php

我意识到这个问题已经被问过很多次了,但是我还没有找到解决这个问题的方法。

我正在使用pChart(pData v2.1.4)。在运行php v5.6.30的托管站点上,它运行良好,但在运行php v7.2.5的XAMMP上,使用相同的代码却出现致命错误。

错误指向pData中的这一行:(注意:pData是由第三方编写的类,因此不是我的代码)

function convertToArray($Value)
    { $Values = ""; $Values[] = $Value; return($Values); }

有关如何解决问题的任何建议?我曾尝试在代码的前面将 $ Values 声明为数组,但这似乎会导致更多错误。

此外,此php版本是否相关,并且如果我的托管站点转移到较新版本的php,我将开始遇到此错误?

4 个答案:

答案 0 :(得分:1)

您无法将字符串转换为数组($Values = ""; $Values[] = $Value;),因此是正确的变体:

function convertToArray($value) {
    return [$value];
}

答案 1 :(得分:1)

值应声明为Array。

Spree::Money.default_formatting_rules[:symbol_position] = :before

答案 2 :(得分:0)

您已将$Values声明为字符串:

$Values = "";

修复用数组替换:

function convertToArray($Value)
{
    $Values = [];
    $Values[] = $Value;
    return $Values;
}

但是,我认为没有理由使用此功能。 在您的代码中,只需使用以下命令定义相同变量的数组:

$Value = [$Value];

它将与您的功能相同。

答案 3 :(得分:0)

尝试一下

function convertToArray($Value){
   $Values = array(); // initialize 

   if ( isset($Value) ) $Values[] = $Value; 

   return($Values); 
}

让我知道它是否有效。