こんにちは、誰かが拡張されたaddslashes関数の構築を手伝ってくれます。これは、オブジェクトと配列の混合された組み合わせで機能します。たとえば、私はこのオブジェクトを持っています:
$object = new stdClass;
$object2 = new stdClass;
$object2->one = "st'r2";
$object3 = new stdClass;
$object3->one = "st'r3";
$object->one = "s'tr";
$object->two = array($object2);
$object->obj = $object3;
そして、このオブジェクトを同じ構造でエスケープして戻したいと思います。私はいくつかの実験を開始しました、そして私はこのようなものを手に入れます:
function addslashes_extended($arr_r){
if(is_array($arr_r)){
foreach ($arr_r as $key => $val){
is_array($val) ? addslashes_extended($val):$arr_r[$key]=addslashes($val);
}
unset($val);
}else if(is_object($arr_r)){
$objectProperties = get_object_vars($arr_r);
foreach($objectProperties as $key => $value){
is_object($value) ? addslashes_extended($value):$arr_r->{$key}=addslashes($value);
}
}
return $arr_r;
}
しかし、これはうまくいきません。私は参照を渡すことで作業する必要があると思いますが、どのようにすればよいかわかりません。他の解決策もあるといいでしょう。よろしくお願いします。