博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
PHP class
阅读量:6522 次
发布时间:2019-06-24

本文共 2999 字,大约阅读时间需要 9 分钟。

hot3.png

php对象的传参,赋值,函数返回,均为引用

age = $age; } public function getAge() { return $this->age; } public function setAge($age) { $this->age = $age; } public function __toString() { return "i am ".$this->age . " years old"."
"; }}function change_age(student $student){ $student->age=180; return $student;}$student1 = new Student(10);$student2 = $student1;$student2->age = 30;$student3 = change_age($student1);echo $student1;echo $student2;echo $student3;$student3->age=10;echo $student1;echo $student2;echo $student3;$methods = get_class_methods($student1);var_dump($methods);$classname = get_class($student1);echo $classname;$class_vars = get_class_vars('Student');var_dump($class_vars);$object_vars = get_object_vars($student1);var_dump($object_vars);

运行结果为

i am 180 years old

i am 180 years old
i am 180 years old
i am 10 years old
i am 10 years old
i am 10 years old

array (size=4)  0 => string '__construct' (length=11)  1 => string 'getAge' (length=6)  2 => string 'setAge' (length=6)  3 => string '__toString' (length=10)

student

array (size=1)  'age' => null
array (size=1)  'age' => int 10

 

类的一些方法

•__autoload — 尝试加载未定义的类

•call_user_method_array — 调用一个用户方法,同时传递参数数组(已废弃)
•call_user_method — 对特定对象调用用户方法(已废弃)
•class_alias — 为一个类创建别名
•class_exists — 检查类是否已定义
•get_called_class — 后期静态绑定("Late Static Binding")类的名称
•get_class_methods — 返回由类的方法名组成的数组
•get_class_vars — 返回由类的默认属性组成的数组
•get_class — 返回对象的类名
•get_declared_classes — 返回由已定义类的名字所组成的数组
•get_declared_interfaces — 返回一个数组包含所有已声明的接口
•get_declared_traits — 返回所有已定义的 traits 的数组
•get_object_vars — 返回由对象属性组成的关联数组
•get_parent_class — 返回对象或类的父类名
•interface_exists — 检查接口是否已被定义
•is_a — 如果对象属于该类或该类是此对象的父类则返回 TRUE
•is_subclass_of — 如果此对象是该类的子类,则返回 TRUE
•method_exists — 检查类的方法是否存在
•property_exists — 检查对象或类是否具有该属性
•trait_exists — 检查指定的 trait 是否存在
 

类的魔术方法

__construct()

__destruct()

__call()在对象中调用一个不可访问方法时,__call() 会被调用

__callStatic()在对象中调用一个不可访问静态方法时,__call() 会被调用

__get(), __set(), __isset(), __unset(), __sleep(), __wakeup(), __toString(), __invoke(), __set_state(), __clone() 和 __debugInfo()等方法在 PHP 中被称为"魔术方法"(Magic methods)。

data[$name] = $value; } public function __get($name) { echo "Getting '$name'\n"; if (array_key_exists($name, $this->data)) { return $this->data[$name]; } $trace = debug_backtrace(); trigger_error( 'Undefined property via __get(): ' . $name . ' in ' . $trace[0]['file'] . ' on line ' . $trace[0]['line'], E_USER_NOTICE); return null; } /** PHP 5.1.0之后版本 */ public function __isset($name) { echo "Is '$name' set?\n"; return isset($this->data[$name]); } /** PHP 5.1.0之后版本 */ public function __unset($name) { echo "Unsetting '$name'\n"; unset($this->data[$name]); } /** 非魔术方法 */ public function getHidden() { return $this->hidden; }}

 

 

转载于:https://my.oschina.net/hnuweiwei/blog/777881

你可能感兴趣的文章
Linux常用的服务器构建
查看>>
深入了解 Weex
查看>>
Android第三方开源FloatingActionButton(com.getbase.floatingactionbutton)【1】
查看>>
【75位联合作者Nature重磅】AI药神:机器学习模型有望提前五年预测白血病!
查看>>
精通SpringBoot——第二篇:视图解析器,静态资源和区域配置
查看>>
JavaScript基础(六)面向对象
查看>>
总结几点Quartz的经验
查看>>
从veth看虚拟网络设备的qdisc
查看>>
企业的最佳选择?开放式混合云大行其道
查看>>
物联网、自动化的冲击下未来20年职场六大趋势
查看>>
《Java核心技术 卷Ⅱ 高级特性(原书第10版)》一3.6.2 使用StAX解析器
查看>>
9月26日云栖精选夜读:阿里Java代码规约插件即将全球首发,邀您来发布仪式现场...
查看>>
北京市交管局联合高德地图发布北京中考出行提示
查看>>
如何防止应用程序泄密?
查看>>
一文带你看懂物联网开源操作系统
查看>>
什么是实践中真正在用的数据科学系统?
查看>>
新型智慧城市:构建“互联网+”新生活
查看>>
韩企全球首造72层3D NAND芯片 下半年或量产
查看>>
《R语言编程艺术》——1.4 R语言中一些重要的数据结构
查看>>
如何让你的手机比别人最先升级到 Android L
查看>>