Я использую stdClass для преобразования массива в объект
function array_to_object($array)
{
if(!is_array($array)) {
return $array;
}
$object = new stdClass();
foreach($array as $key => $value)
{
$key = (string) $key ;
$object->$key = is_array($value) ? array_to_object($value) : $value;
}
return $object;
}
$type = array(
"category" => "admin",
"person" => "unique"
);
$type = array_to_object($type);
var_dump($type->category); // string(5) "admin"
и, конечно же, ошибка, когда я хочу получить свойство, которое изначально не установлено в массиве,
var_dump($type->image);
сообщение об ошибке,
Notice: Undefined property: stdClass::$image in C:\wamp\www\test\2012\php\array_to_object.php on line 52
NULL
Интересно, могу ли я заставить функцию возвращать значение null, если свойство не найдено?
var_dump($type->image); //NULL
РЕДАКТИРОВАТЬ:
Решил превратить эту функцию выше в класс, но все еще не могу заставить __get() работать правильно,
class objectify
{
public function __get($name)
{
if (isset($this->$name) === true){
return $this->$name;
} else {
return null;
}
}
public function array_to_object($array)
{
if(!is_array($array)) {
return $array;
}
$object = self::__get($name);
foreach($array as $key => $value)
{
$key = (string) $key ;
$object->$key = is_array($value) ? self::array_to_object($value) : $value;
}
return $object;
}
}
$object = new objectify();
$type = array(
"category" => "admin",
"person" => "unique"
);
$type = $object->array_to_object($type);
var_dump($type->category);
var_dump($type->image);
сообщение об ошибке,
Notice: Undefined variable: name in C:\wamp\www\test\2012\php\array_to_object.php on line 85
string(5) "admin"
Notice: Undefined property: stdClass::$image in C:\wamp\www\test\2012\php\array_to_object.php on line 107
NULL
Я думаю, что именно в этой строке и находится ошибка, но я не знаю, что с ней делать...
$object = self::__get($name);
Подробнее здесь: https://stackoverflow.com/questions/104 ... ass-is-not
Как вернуть значение null внутри функции/метода, если свойство в классе не найдено? ⇐ Php
Кемеровские программисты php общаются здесь
1716008017
Anonymous
Я использую stdClass для преобразования массива в объект
function array_to_object($array)
{
if(!is_array($array)) {
return $array;
}
$object = new stdClass();
foreach($array as $key => $value)
{
$key = (string) $key ;
$object->$key = is_array($value) ? array_to_object($value) : $value;
}
return $object;
}
$type = array(
"category" => "admin",
"person" => "unique"
);
$type = array_to_object($type);
var_dump($type->category); // string(5) "admin"
и, конечно же, ошибка, когда я хочу получить свойство, которое изначально не установлено в массиве,
var_dump($type->image);
сообщение об ошибке,
Notice: Undefined property: stdClass::$image in C:\wamp\www\test\2012\php\array_to_object.php on line 52
NULL
Интересно, могу ли я заставить функцию возвращать значение null, если [b]свойство[/b] не найдено?
var_dump($type->image); //NULL
[b]РЕДАКТИРОВАТЬ:[/b]
Решил превратить эту функцию выше в класс, но все еще не могу заставить __get() работать правильно,
class objectify
{
public function __get($name)
{
if (isset($this->$name) === true){
return $this->$name;
} else {
return null;
}
}
public function array_to_object($array)
{
if(!is_array($array)) {
return $array;
}
$object = self::__get($name);
foreach($array as $key => $value)
{
$key = (string) $key ;
$object->$key = is_array($value) ? self::array_to_object($value) : $value;
}
return $object;
}
}
$object = new objectify();
$type = array(
"category" => "admin",
"person" => "unique"
);
$type = $object->array_to_object($type);
var_dump($type->category);
var_dump($type->image);
сообщение об ошибке,
Notice: Undefined variable: name in C:\wamp\www\test\2012\php\array_to_object.php on line 85
string(5) "admin"
Notice: Undefined property: stdClass::$image in C:\wamp\www\test\2012\php\array_to_object.php on line 107
NULL
Я думаю, что именно в этой строке и находится ошибка, но я не знаю, что с ней делать...
$object = self::__get($name);
Подробнее здесь: [url]https://stackoverflow.com/questions/10423792/how-to-return-null-inside-the-function-method-if-a-property-in-the-class-is-not[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия