Q:Can‘t use function return value in write context
A:PHP版本5.4以下类似empty()、is_array()的函数不能直接判断某功能的返回值,只能写成变量的形式
报错位置: if (empty(fn())) {}
解决方法: 拆分语句 $r = $fn(); if (empty($r )) {}
Q:Cannot use a scalar value as an array
A:如果一个变量名(如a)已经被定义为非数组类型,例如integer,那么a可以被转为floating point、string(甚至是object类型),但不可以是数组,即a[0]=1;是错误的。即使a被定义为一维数组,也不能转为高维数组。
报错位置: private function inline_js_admin_data( $data ) { $data['connectURL'] = esc_url_raw( $this->get_connect_url() ); $data['disconnectURL'] = esc_url_raw( $this->get_disconnect_url() ); return $data; }
解决方法: is_scalar判断 private function inline_js_admin_data( $data ) { if (!is_scalar($data)) { $data = (array) $data; } $data['connectURL'] = esc_url_raw( $this->get_connect_url() ); $data['disconnectURL'] = esc_url_raw( $this->get_disconnect_url() ); return $data; }
Q: ::class
A:实际上是带命名空间的类名
报错代码:
ClassName::class
解决方法:
‘NS\ClassName’