类中属性返回形式(对象,关联数组,索引数组)

class A {

public $x, $y;

function __construct($x, $y)  {

$this->x = $x;

$this->y = $y;

}

function get_value($arr = true)  {

if($arr == ‘arr‘)   {

// 类中属性以关联数组形式转换返回

return get_object_vars($this);

}else if($arr == ‘obj‘)   {

//类中属性以对象形式返回

return $this;

}else   {

// 类中属性以索引数组形式转换返回

return array_values(get_object_vars($this));

}

}

}

$aa = new A(100, 200);

$ok = $aa->get_value();

print_r($ok);

类中属性返回形式(对象,关联数组,索引数组),布布扣,bubuko.com

时间: 2024-10-11 11:49:17

类中属性返回形式(对象,关联数组,索引数组)的相关文章

一个类在另一个类中以集合形式声明为属性时应该注意的问题

标题:一个类在另一个类中以集合形式声明为属性时应该注意的问题,先解释一下,看下面的代码吧 [Serializable] public class MO_T_sj_quest { public List<MO_T_sj_answer> AnswerList { get; set; } public List<MO_T_sj_answer> IDList { get; set; } public List<MO_T_sj_quest_bind> BindList { get

java类中属性的加载顺序,以及内存分配情况介绍

看下面例子及说明: /** 假如有外部类调用了该类,代码为:new StaticTest(); 那么下面是类属性的加载顺序 */ public class StaticTest{ public int dsd=2;//第3 //多个对象会有多次分配内存 public awds() { int sdsfsd=2;//第4 //多个对象会有多次分配内存 } //静态代码块 static{ System.out.println("静态代码块正在加载...");//第1 } public st

利用runtime实现延展动态改变模型类中属性的set,get方法

昨天大概的阐述了一下关于构架控制容器的概念,但是如果要丰满这个想法还有很多问题,比如如果我想对一些controller进行管理就势必涉及到controller的加载以及缓存,而想做这些的前提就是构建一个controller表.对表中设定的字符串管理,从而管理对应的controller.传统创建表的方法有很多,最为常用的就是plist文件,但是对于iOS开发的程序员来说,如果这个plist写死,在管理的时候就会比较死板,要知道oc是一门灵活的,动态的语言.如果我们使用NSUserDefaults,

转载:C++中两个类中互相包含对方对象的指针问题

原文链接:http://www.cnblogs.com/hanxi/archive/2012/07/25/2608068.html 前几天很不爽,因为C++中两个类中互相包含对方对象的指针编译时提示某一个类未定义...所以我就想啊想,这样也对,我的头文件都有#ifndef的,包含了一次就不能再包含了,以为就实现不了这样的功能,于是就改了设计方案: class A { public: A(B* pB):m_pB(pB) { } private: B* m_pB; }; class B { publ

类中的方法(对象的原型中的方法)消失

问题: 使用indexdb,sqlite等本地储存后再取出对象导致类中的方法(对象的原型中的方法)消失. 解决方法: 使用Object.assign()合并对对象.这时,this.details中的每个元素都是RetailOrderDetailEditDto的实例化对象. 重新构造一个对象new RetailOrderDetailEditDto(), 这个对象中包含所需要的方法,toJSON等. this.details = this.details.map(e => { this.amount

面向对象中对象和类以及如何访问类中属性和方法

对象:客观存在的具体事物.某一个具体的个体 *类:具有相同行为和共同特征的对象的集合,类是人类脑海中一个抽象的概念,通过类创建对象 *类中的成员:1.成员属性(描述外部特征) 2.成员方法(描述功能行为)* 如何定义一个类: * [修饰符] class 类名{ * //1.属性的定义:与定义变量类似 * [修饰符] 数据类型 属性名; * //2.方法的定义 * [修饰符] 返回值类型 方法名(形参列表){ * //方法体; * } * } * 成员变量和局部变量的区别: * 1.作用域不同:成

Python_day8_面向对象(多态、成员修饰符、类中特殊方法、对象边缘知识)、异常处理之篇

一.面向对象之多态 1.多态:简而言子就是多种形态或多种类型 python中不支持多态也用不到多态,多态的概念是应用与java/C#中指定传参的数据类型, java多态传参:必须是传参数的数据类型或传参的子类类型 面向对象总结: 面向对象是一种编程方式,此编程方式的实现是基于类和对象的使用 类:是一个模板,模板中包含了多个函数共使用,即类中可包含多个函数(类中的函数即叫做方法) 一般疑问: 1)什么样的代码才是面向对象? 简单来说,如果程序中的所有功能否是由 “类”和“对象”实现,那么就是面向对

依赖注入模式中,为什么用对象而不是用数组传递?

依赖注入(Dependence Injection, DI) 依赖注入是控制反转的一种设计模式.依赖注入的核心是把类所依赖的单元的实例化过程,放到类的外面去实现.依赖注入的实现离不开反射. 依赖注入(Dependence Injection, DI) 所谓的依赖注入,指将依赖的对象通过参数的形式一次性传入,使用时不需要显式 new 了,比如把A类所依赖的B类.C类等以属性或者构造函数等方式注入A类而不是直接在A类中实例化. 只要不是由内部生产(比如初始化.构造函数中通过工厂方法.自行手动 new

CI框架中一个类中调用另一个类中已经加载对象测试

controller.php 1 <?php 2 class CI_Controller { 3 4 private static $instance; 5 6 public function __construct() 7 { 8 self::$instance =& $this; 9 10 foreach (is_loaded() as $var => $class) 11 { 12 $this->$var =& load_class($class); 13 $obj