Суть в следующем:
Есть один метод и одна функция. Метод принимает массив, экранирует его и возвращает. А функция принимает массив и объект, после чего задает свойствам полученного объекта значения из переданного массива.
Так вот, в метод я передаю супер глобальную $_POST, после чего чистый массив передаю функции и получаю нужный мне объект с заданными свойствами. Но интересно, окажут ли эти не хитрые манипуляции влияние на производительность и если да, то как сильно.
Метод:
public static function arrayEscape(array $array, $deliteEmptyKeys=false){
if($deliteEmptyKeys){
foreach($array as $key => $value){
if(!empty($value)){
$clean[$key] = static::$db->escape($value);
}
}
}
else{
foreach($array as $key => $value){
$clean[$key] = static::$db->escape($value); /* Вызывается метод экранирования строк, хранящийся в статической переменной $db */
}
}
return $clean;
}
Функция:
function arrayToObject($object, array $arr){
$prop=get_object_vars($object);
foreach($arr as $key=>$value){
if(array_key_exists($key,$prop)){
$object->$key = $arr[$key];
}
}
}
Использую таким образом:
$clean = Db_querys::arrayEscape($_POST,true);
arrayToObject($object,$clean);
Вместо записи такого вида:
$object->prop1 = $db->escape($_POST['prop1']);
$object->prop2 = $db->escape($_POST['prop2']);
И так сколь угодно свойтсв