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’

作者 admin

百度广告效果展示