Вы здесь: Современные автоматизированные системы и технологии безопасности » Оптимизация » Приведение типов данных php, array to object, object to array. Интересный баг php

Поиск по сайту
Полезная информация
Статистика

5-03-2010, 13:37
Там, где от этого зависит безопасность, или результат может быть неоднозначным, приводите явно тип данных, проверяйте входящие переменные со стороны клиента на существование, пусты ли они, и к какому типу относятся. Аккуратность написания скриптов избавит от чрезмерной отладки в дальнейшем и сделает Ваш сайт менее чувствительным к действиям недоброжелателей,и более стабильным в работе.

Приведение типов данных php, array to object, object to array. Интересный баг php

Приведение типов данных php, array to object, object to array.

// Объявляем массив
$array = array('11' => 'one', 22 => 'two');

print_r ($array);
/*
Получаем:
Array
(
[11] => one
[22] => two
)
*/

echo $array[11]."\r\n";
// Получаем: one

$stdClass = (object)$array;

print_r ($stdClass);
/*
Получаем:
stdClass Object
(
[11] => one
[22] => two
)
*/

/*
echo $array->11;
вернет ошибку парсинга, т.к. наименование свойства объекта не может являться числом, но
при автоматическом приведении типов в php названия свойств элементов объекта храняться с строке,
но обратиться к ним невозможно, т.к. описать это для интерпритатора php не представляется возможным
* $array->11;
* $array->'11';
Ничего из этого не сработает
*/

$arrayTwo = (array)$stdClass;

print_r ($arrayTwo);
/*
Получаем:
Array
(
[11] => one
[22] => two
)
*/

echo $arrayTwo[11];
// Получаем: one

 
Просмотров:
© 2009–2021 Автоматизированные системы безопасности AstLimited.ru
При полном или частичном копировании публикаций ссылка на автоматизированные системы, электроника и безопасность AstLimited.ru обязательна.