我在函数内的Fatal error: Cannot use [] for reading on line
处收到错误return $array[];
。
我在Windows 10上使用PHP V7.0.1。
我试图获得如下输出:
<i>Error Line One...</i><br>
<i>Error Line Two...</i><br>
,在json_encode
{"s":"Error Line One...<\/i>Error Line Two...<\/i>","success":false}
我之前使用过不同的方法,但昨天改用了它。
我怎样才能完成这项工作?
$errorCount = 1;
$errors[] = '*Error Line One...';
$errors[] = '*Error Line Two...';
$errors['success'] = ($errorCount == 0 ? True : False);
$errors[] = ajax($errors);
function ajax($array) {
$array = preg_replace('#\*(.+?)(?![^*])#','<i>$1</i><br>',$array);
return $array[];
}
json_encode($errors);
以下是如何完成之前的操作,然后更改为上述内容以避免.=
部分。这种方法有效。请参阅Fiddle。
$errorCount = 1;
$errors['s'] = '*Error Line One...';
$errors['s'] .= '*Error Line Two...';
$errors['s'] = ajax($errors);
function ajax($array) {
$array = preg_replace('#\*(.+?)(?![^*])#','<i>$1</i>',$array);
return $array['s'];
}
$errors['success'] = ($errorCount == 0 ? True : False);
echo json_encode($errors);
答案 0 :(得分:1)
您将返回$ array []而不是$ array,
改变这个:
function ajax($array) {
$array = preg_replace('#\*(.+?)(?![^*])#','<i>$1</i><br>',$array);
return $array[];
}
进入这个:
function ajax($array) {
return preg_replace('#\*(.+?)(?![^*])#','<i>$1</i><br>',$array);
}
编辑:
这解决了我的想法:
<?php
$errorCount = 1;
$errors[] = '*Error Line One...';
$errors[] = '*Error Line Two...';
$errors = ajax($errors);
$errors['success'] = ($errorCount == 0 ? True : False);
function ajax($array) {
foreach ($array as $key => $value)
$array[$key] = preg_replace('#\*(.+?)(?![^*])#','<i>$1</i><br>', $value);
return $array;
}
echo json_encode($errors);
?>