Articles of объектов

Кастинг объекта массиву – вызов любого магического метода?

У меня есть объект класса Foo: class Foo extends Bar { protected $a; protected $b; } $obj = new Foo(); То, что я хочу (и должен) сделать, это передать этот объект массиву, например: $arr = (array)$obj; Есть ли какой-нибудь магический (или не магический :)) метод, который сейчас называется? Или есть другой способ перехватить его? Я […]

как преобразовать многомерный массив в объект в php?

У меня многомерный массив: $image_path = array('sm'=>$sm,'lg'=>$lg,'secondary'=>$sec_image); ведьма выглядит так: [_media_path:protected] => Array ( [main_thumb] => http://example.com/e4150.jpg [main_large] => http://example.com/e4150.jpg [secondary] => Array ( [0] => http://example.com/e4150.jpg [1] => http://example.com/e4150.jpg [2] => http://example.com/e9243.jpg [3] => http://example.com/e9244.jpg ) ) и я хотел бы преобразовать его в объект и сохранить имена ключей. Есть идеи? благодаря edit: $obj […]

сравнить свойства объекта и показать diff в PHP

Я ищу способ показать мне разные свойства / значения из заданных объектов … $obj1 = new StdClass; $obj1->prop = 1; $obj2 = new StdClass; $obj2->prop = 2; var_dump(array_diff((array)$obj1, (array)$obj2)); //output array(1) { ["prop"]=> int(1) } Это работает очень хорошо, так как долго свойство не является объектом или массивом. $obj1 = new StdClass; $obj1->prop = array(1,2); […]

постоянство объекта в php

Я довольно новичок в веб-программировании, я в основном использовал java для создания настольных приложений в прошлом. Я пытаюсь понять, как создавать постоянные объекты в php. Возможно, постоянное это неправильное слово, я не хочу, чтобы объект был уникальным для каждого клиента, например, я получал бы его сериализацию в переменной сеанса. Я хочу, чтобы объект был создан […]

Как создавать объекты в PHP

Ive некоторые кланы, которые имеют некоторые атрибуты, и я хотел бы сделать что-то вроде: $ dog = (Dog) $ cat; возможно ли это или существует какая-то общая работа? Это не суперкласс, ни интерфейс, ни связанные с ним. Они всего лишь две разные кланы, я хотел бы, чтобы php сопоставлял атрибуты от класса кошки собаке и […]

Массив к объекту и объекту в массив в PHP – интересное поведение

Можете ли вы объяснить следующее интересное поведение? class test { //Class *test* has two properties, public and private. public $xpublic = 'x1'; private $xprivate = 'x2'; } $testObj = new test(); Давайте преобразуем $testObj в массив. settype($testObj, 'array'); var_dump($testObj); Результат: array (2) { ["xpublic"] => строка (3) "x1" ["testxprivate"] => строка (4) "x2" } OK, […]

Получить первый элемент в PHP stdObject

У меня есть объект (сохраненный как $ videos), который выглядит так: object(stdClass)#19 (3) { [0]=> object(stdClass)#20 (22) { ["id"]=> string(1) "123" etc… Я хочу получить идентификатор только этого первого элемента, не зацикливая его. Если бы это был массив, я бы сделал это: $videos[0]['id'] Он работал так: $videos[0]->id Но теперь я получаю сообщение об ошибке «Невозможно […]

как я сортирую следующий объект array / stdclass в php?

Как сортировать этот объект по 'pos' в php? Array ( [0] => stdClass Object ( [str] => Mondays [pos] => 170 ) [1] => stdClass Object ( [str] => Tuesdays [pos] => 299 ) [2] => stdClass Object ( [str] => Wednesdays [pos] => 355 ) [3] => stdClass Object ( [str] => Thursdays [pos] […]

Как поймать вызов любого метода на PHP?

Я пытаюсь понять, как поймать любой метод, вызываемый объектом в PHP. Я знаю о волшебной функции __call , но она срабатывает только для методов, которые не существуют на вызываемом объекте. Например, у меня есть что-то вроде этого: class Foo { public function bar() { echo 'foobar'; } public function override($method_name,$method_args) { echo 'Calling method ',$method_name,'<br […]

get_object_vars () против переноса в массив

Существуют ли различия между get_object_vars($obj) и (array) $obj ? Оба, похоже, возвращают общедоступные свойства объекта. Что лучше?