PHP日志出现Cannot use a scalar value as an array 错误警告?

  • 回答 (2)
  • 关注 (0)
  • 查看 (114)

Apacher php-fpm linux 下 日志出现Cannot use a scalar value as an array 错误警告

执行错误警告行:

$notValveForKey[$key]='app='.APP_NAME.'&mod='.MODULE_NAME.'&act='.ACTION_NAME;

以下是完整方法:

function L($key,$data = array()){
    $key = strtoupper($key);
     if(!isset($GLOBALS['_lang'][$key])){
         $notValveForKey = F('notValveForKey', '', DATA_PATH.'/develop');
         if($notValveForKey==false){
           $notValveForKey = array();
         }
         if(!isset($notValveForKey[$key])){
           *$notValveForKey[$key] = '?app='.APP_NAME.'&mod='.MODULE_NAME.'&act='.ACTION_NAME;*
         }
         F('notValveForKey', $notValveForKey, DATA_PATH.'/develop');
          return $key;
     }
     if(empty($data)){
          return $GLOBALS['_lang'][$key];
     }
     $replace = array_keys($data);
     foreach($replace as &$v){
        $v = "{".$v."}";
     }
     return str_replace($replace,$data,$GLOBALS['_lang'][$key]);
}
微信资讯小编微信资讯小编提问于
Ne_biubiubiu这就是世界结束的方式回答于

需要注意的是类型的转换:

如果一个变量名(如a)已经被定义为非数组类型,例如integer,那么a可以被转为floating point、string(甚至是object类型),但不可以是数组,即a[0]=1;是错误的,php会报出这样的警告“Cannot use a scalar value as an array“。即使a被定义为一维数组,也不能转为高维数组。

发条丶魔灵1回答于

扫码关注云+社区

领取腾讯云代金券