3
у меня есть класс сказать, Foo
, который имеет json
строковое свойство bar
: [PHP Fiddle Link]снята с охраны() не работает внутри методов класса
<?php
class Foo {
public $bar = '{"1455260079":"Tracking : #34567808765098767 USPS","1455260723":"Delivered","1455261541":"Received Back"}';
public function getBar(){
return (array) json_decode($this->bar);
}
public function remove($timestamp){
$newBar = $this->getBar();
print_r($newBar);
unset($newBar[$timestamp]);
print_r($newBar);
$this->bar = json_encode($newBar);
}
}
Теперь, чтобы удалить элемент из бара, я делаю следующее, Я не могу понять, почему это не удаление:
$foo = new Foo();
$foo->remove("1455261541");
echo $foo->bar;
печатает:
Array
(
[1455260079] => Tracking : #34567808765098767 USPS
[1455260723] => Delivered
[1455261541] => Received Back
)
Array
(
[1455260079] => Tracking : #34567808765098767 USPS
[1455260723] => Delivered
[1455261541] => Received Back
)
{"1455260079":"Tracking : #34567808765098767 USPS","1455260723":"Delivered","1455261541":"Received Back"}
В чем причина этого? Любая помощь?
Хм, это работает круто! Странно, что мы не можем отбросить проклятый массив ключами! Благодарю. – tika
Тип массива с использованием '(array)' будет преобразовывать ключи в строку, см. Var_dump массива в вашем исходном коде –