怎麼可能是包含?或其他特殊字符的字符串返回爲空?不僅是特殊字符是闊葉但整個字符串(值)返回空...json_encode()
編輯:
class JSON {
static function encode($arr, $utf8_encode=false){
$arr = self::parse_int($arr);
if($utf8_encode){
array_walk_recursive($arr, array(self => 'utf8_enc'));
}
return $arr ? json_encode($arr):'{}';
}
static function decode($str){
return json_decode($str, true);
}
function utf8_enc(&$value, $key){
$value = utf8_encode($value);
}
function parse_int($arr){
foreach($arr as $key => $value){
if(is_array($value)){
$arr[$key] = self::parse_int($value);
}
else{
if(is_numeric($value)){
settype($value, 'float');
}
$arr[$key] = $value;
}
}
return $arr;
}
}
,但我得到這個錯誤:
Warning: array_walk_recursive() expects parameter 2 to be a valid callback, array must have exactly two members
在這一行:
array_walk_recursive($arr, array(self => 'utf8_enc'));
如何在當前對象中定義函數?
我已經編輯我的文字:) – clarkk 2011-04-25 14:42:17
爲了用靜態方法使用array_walk_recursive你應該直接實例:array_walk_recursive($改編,「JSON :: utf8_enc」);或者,如果它只是一個公共方法:array_walk_recursive($ arr,array($ this =>'utf8_enc'));或者,如果只是一個公共方法:array_walk_recursive($ arr,array($ this =>'utf8_enc')); – 2011-04-25 14:50:34
我想你會換array_walk_recursive($ arr,'JSON :: utf8_enc'); ? :) – clarkk 2011-04-25 14:53:33