类中的成员属性不能够用函数为其赋值。public age = rand(1,100);//这是错误的;

__get()   __set()  __isset() __unset()

final 用来修饰成员方法或类,被final修饰的类不能被继承,final修饰的方法不能重载。参考博客

const 定义的常量归类所有。类名::常量名  方式访问

statics  成员方法中使用了$this,那么这个成员方法就不能用statics修饰.

parent指向父类,可以访问父类的静态常量、静态属性,不能访问父类的非静态属性,可以调用父类的方法(不能是private方法,无论是否静态)

对象串行化:serialize()    默认情况是把整个对象串行化,准确说是对象里的属性,如果我只想串行化指定的成员属性。那需要使用一个魔术方法   __sleep()  ,调用serialize时触发。还有一个   __wakeup()   是在调用unserialize() 触发, 作用是在反串行化的时候可以修改成员属性。

__tostring() 使用echo输出对象时触发。验证码类可以使用来简化操作。

克隆:由于把一个对象赋值给另一个变量的时候默认是引用的(不是把值传递给另一个变量)。所以需要clone,才能得到一个新的一样的对象,改变其中一个对象的时候,另一个不会变。如果说克隆的时候想要改变某些属性,需要使用__clone()  在clone的时候触发。

class SubObject
{
static $instances = 0;
public $instance; public function __construct() {
$this->instance = ++self::$instances;
} public function __clone() {
$this->instance = ++self::$instances;
}
} class MyCloneable
{
public $object1;
public $object2; function __clone()
{ // 强制复制一份this->object, 否则仍然指向同一个对象
$this->object1 = clone $this->object1;
}
} $obj = new MyCloneable(); $obj->object1 = new SubObject();
$obj->object2 = new SubObject(); $obj2 = clone $obj; echo '<pre>';
print("Original Object:\n");
print_r($obj); print("Cloned Object:\n");
print_r($obj2); //手册中的示例

__call()    调用类中不存在的方法时触发。

__autoload()

单例设计模式:

 <?php

 class Mysql{
static private $link = null;
private function __construct(){
echo 1111;
} static public function connect(){
if(is_null(self::$link)){
self::$link = new self;//new self 是实例化
}
return self::$link;
}
}
//这样就实现了一个简单的单例设计模式
Mysql::connect(); //无论调用多少次这个方法,都只会输出一个

最新文章

  1. SQL Server:APPLY表运算符
  2. log4j配置详解
  3. MineCraft note
  4. PHP移动文件指针ftell()、fseek()、rewind()总结
  5. asp.net的简易的参数化查询
  6. ecshop去掉“云服务中心”或者是“模板堂知识库”
  7. 再说vundle: 完全vim字符编程的四个必须插件 - zen coding 和emmet插件的使用
  8. UVALive 7297 bfs
  9. boost::asio 使用实例
  10. mongodb的优化
  11. callback用法简介
  12. 快学Scala-第一章 基础
  13. PHP 文件上传全攻略
  14. RN 导入原有Xcode项目中,引入Pod依赖出现的问题与解决
  15. 初次使用git配置以及git如何使用ssh密钥(将ssh密钥添加到github)
  16. SSH中的Invalid action class configuration that references an unknown class named.......
  17. 理解 .NET 2015
  18. P4381 [IOI2008]Island(基环树+单调队列优化dp)
  19. 7.6 C++基本序列式容器效率比较
  20. Refused to execute inline event handler because it violates the following Content Security Policy directive: &quot;xxx&quot;. Either the &#39;unsafe-inline&#39; keyword, a hash (&#39;sha256-...&#39;), or a nonce (&#39;nonce-...&#39;)

热门文章

  1. C语言 --- 初级指针
  2. Smarty内置函数之capture
  3. thymeleaf 模板使用 之 解决因HTML标签未闭合引起的错误
  4. js中神奇的东西
  5. 微信小程序富文本
  6. axios跨域问题(包括开发环境和生产环境)
  7. Python 之subprocess模块
  8. C语言特殊函数的应用
  9. Java ==和equals的区别
  10. qunee 流动的关系