У меня есть объект класса Foo: class Foo extends Bar { protected $a; protected $b; } $obj = new Foo(); То, что я хочу (и должен) сделать, это передать этот объект массиву, например: $arr = (array)$obj; Есть ли какой-нибудь магический (или не магический :)) метод, который сейчас называется? Или есть другой способ перехватить его? Я […]
У меня многомерный массив: $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 […]
Я ищу способ показать мне разные свойства / значения из заданных объектов … $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); […]
Я довольно новичок в веб-программировании, я в основном использовал java для создания настольных приложений в прошлом. Я пытаюсь понять, как создавать постоянные объекты в php. Возможно, постоянное это неправильное слово, я не хочу, чтобы объект был уникальным для каждого клиента, например, я получал бы его сериализацию в переменной сеанса. Я хочу, чтобы объект был создан […]
Ive некоторые кланы, которые имеют некоторые атрибуты, и я хотел бы сделать что-то вроде: $ dog = (Dog) $ cat; возможно ли это или существует какая-то общая работа? Это не суперкласс, ни интерфейс, ни связанные с ним. Они всего лишь две разные кланы, я хотел бы, чтобы 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, […]
У меня есть объект (сохраненный как $ videos), который выглядит так: object(stdClass)#19 (3) { [0]=> object(stdClass)#20 (22) { ["id"]=> string(1) "123" etc… Я хочу получить идентификатор только этого первого элемента, не зацикливая его. Если бы это был массив, я бы сделал это: $videos[0]['id'] Он работал так: $videos[0]->id Но теперь я получаю сообщение об ошибке «Невозможно […]
Как сортировать этот объект по '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. Я знаю о волшебной функции __call , но она срабатывает только для методов, которые не существуют на вызываемом объекте. Например, у меня есть что-то вроде этого: class Foo { public function bar() { echo 'foobar'; } public function override($method_name,$method_args) { echo 'Calling method ',$method_name,'<br […]
Существуют ли различия между get_object_vars($obj) и (array) $obj ? Оба, похоже, возвращают общедоступные свойства объекта. Что лучше?