php unset方法,php – unset()在类方法中不起作用
我有一个类说,Foo有一个名为bar:
[PHP Fiddle Link]的json字符串属性
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);
}
}
现在,要从bar中删除元素,我正在执行以下操作,我无法弄清楚它为什么不删除:
$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"}
这背后的原因是什么?有帮助吗?
最佳答案 尝试下面的解决方案,我只是更改了getBar函数并在json_decode函数中添加了一个参数:
class Foo {
public $bar = '{"1455260079":"Tracking : #34567808765098767 USPS","1455260723":"Delivered","1455261541":"Received Back"}';
public function getBar(){
return json_decode($this->bar, true);
}
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
)
{"1455260079":"Tracking : #34567808765098767 USPS","1455260723":"Delivered"}
php unset方法,php – unset()在类方法中不起作用相关推荐
- php 有下划线的方法,编码风格 - PHP类方法中领先的下划线有什么用?
编码风格 - PHP类方法中领先的下划线有什么用? 在查看各种PHP库时,我注意到很多人选择使用单个下划线为某些类方法添加前缀,例如 public function _foo() ...代替... p ...
- php unset方法,PHP中__unset()方法详解
__unset(),当对不可访问属性调用unset()时被调用. 看这个方法之前呢,我们也先来看一下 unset() 函数,unset()这个函数的作用是删除指定的变量且传回true,参数为要删除的变 ...
- php unset函数_PHP | 使用unset()函数从数组中删除元素
php unset函数 Given an array and we have to remove an element from the array. 给定一个数组,我们必须从数组中删除一个元素. u ...
- php函数unset,PHP unset函数 PHP unset函数原理及使用方法解析
想了解PHP unset函数原理及使用方法解析的相关内容吗,小猿笔记在本文为您仔细讲解PHP unset函数的相关知识和一些Code实例,欢迎阅读和指正,我们先划重点:PHP,unset函数,下面大家 ...
- Cmake入门之——Unset方法(七)
一 概述 set方法用于给变量设置值,同理,unset方法用于给变量清空值,其中变量的取值为以下三种: 一般变量(Normal Variable) 缓存变量(Cache Variable) 环境变量( ...
- python 类中方法总结 --- 实例方法、类方法、静态方法
在python的类语法中,可以出现三种方法,具体如下: (1)实例方法 很多人学习python,不知道从何学起. 很多人学习python,掌握了基本语法过后,不知道在哪里寻找案例上手. 很多已经做案例 ...
- python cls方法_关于类方法中的cls
在python的类方法中,默认使用的第一个参数是cls,而在实例方法中,一般使用self作为第一个参数. 两处比较: (1)比较一般类方法中的self和cls的区别:一般来说,使用某个类的方法,需要先 ...
- python类中方法调用自己类的方法_python 类中方法总结 --- 实例方法、类方法、静态方法...
在python的类语法中,可以出现三种方法,具体如下: (1)实例方法 1)第一个参数必须是实例本身,一般使用[self]表示. 2)在实例方法中,可以通过[self]来操作实例属性,[类名]来操作类 ...
- python类方法中使用:修饰符@staticmethod和@classmethod的作用与区别,还有装饰器@property的使用
python类方法中使用:修饰符@staticmethod和@classmethod的作用与区别,还有装饰器@property的使用(3-20181205) 文章目录: 一. @staticmetho ...
最新文章
- html缩进两个空格,HTML缩进标准,制表符还是两个空格?
- 移动互联网长连接方案实例
- redis 怎么关闭写盘_Redis持久化策略
- Java内存模型和优化
- VNCserver在Fedora上配置过程
- elasticsearch实现远程索引复制
- 2008r2无线服务器,2008r2云服务器
- 批处理中的使用问题记录
- Luck Competition
- 大话机器学习之数据预处理与数据筛选
- 基于Docker布署伪分布式hadoop环境(一)
- 云计算大败局:基因与宿命
- python随机抽号_Python基础:手把手以实例教你学随机数产生和字符/ASCII码转换
- -lc++ 和 添加 libc++.tbd 居然是等价的
- 红外热成像仪原理及应用
- #STM32 LCD12864编程即原理介绍
- 金桔蓝牙LoRa主被动一体定位系统原理
- html万花筒图片轮播代码,jQuery实现可拖拽3D万花筒旋转特效
- IDE/SATA/SCSI接口
- 【ESP32】Arduino+LVGL 如何使用PSRAM优化显示