Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1244088
  • 博文数量: 164
  • 博客积分: 2993
  • 博客等级: 少校
  • 技术积分: 1718
  • 用 户 组: 普通用户
  • 注册时间: 2011-06-24 11:42
文章分类

全部博文(164)

文章存档

2014年(1)

2013年(36)

2012年(90)

2011年(37)

分类: Python/Ruby

2012-07-14 16:31:15

php中常用的关键字
  final
     1.final不能修饰成员属性(常量不是用这个修饰)
     2.final只能修饰类和方法
          使用final修饰的类不能被子类继承
          使用final修饰的方法不能被子类去覆盖(与private的用法相同)
  static(静态)
      1.使用 static可以修饰成员属性和成员方法,不能修饰类 
      2.用static修饰的成员属性可以被同一个类的所有对象共享
      3.静态数据存在内存中的数据段中的(内存存储结构图可见,最上面一条)
      4.静态数据实在类第一次加载是分配到内存中的,以后再用到类时就可以直接用,不用重复声明
     5.什么是类被加载?只要在程序中使用到这个类(有这个类名出现)
     注意:静态的成员都要使用类名去访问,不用创建对象
        类名::静态成员
     如果在类中使用静态成员,可以使用self代表本类
        self::静态变量名
     6.静态方法(static修饰的方法),不能访问非静态的成员,如果你确定一个方法中不用非静态成员才声明静态方法

  const(常量)
      1.只能修饰成员属性(不能修饰类和方法)
      define(‘host’,‘www.xsphp.com’);
      2.类中声明常量属性使用const
      3.命名的方式和我们以前学习的define是一样的效果
      4.访问方式和static静态成员属性是一样(在类外部使用  在类外部使用  类名::常量,在类内部使用 self::常量
      关键字 $this  self parent... 

php中常用的魔术方法
    __call() 
        作用:在调用对象中不存在的方法时,就会出现系统报错,程序退出。
       处理一些不存在方法的错误调用
       这个方法需要两个参数  
        function__call($methodName,$args){
        echo "你调用的方法{$methodName}(参数:";
        print_r($args);
        echo")不存在
";
}
        什么时候调用:   就会调用一个对象中不存在的方法是自动调用 

    __toString()//当直接输出对象引用时,自动调用此函数,用来快速获取对象的字符串表示的最快捷的方式


对象串行化(序列化): 将一个对象转为二进制串 (对象是存储在内存)

      1. 将对象长时间存储在数据库或文件中时
      2. 将对象在多个PHP文件中传输时
    serialize() : 参数是一个对象,返回来的就是串行化后的二进制串
    $str=serialize($p);
    unserialize() : 参数就是对象的二进制串, 返回来的就是新生成的对象
    $p=unserialize($str);

    __sleep()//是在序列化是自动调用的方法
         作用:将一个对象部分串行化 
         只要这个方法中返回一个数组,数组中有几个成员属性就序列化几个成员属性,如果不加这个方法,则所有成员都被序列化
    

     __wakeup()//是在反序列化时调用的方法
       

    __autoload()
    注意: 其它的魔术方法都是在类中添加起作用,这是一个唯一一个不在类中添加的方法
    只要在页面中使用一个类,只要用到类名就会自动将类名传给这个参数
    function __autoload($className){
       include "./".$className.".class.php";
    }

    __clone() //使内存中有两个相同的,为克隆对象初始化
    function __clone(){
          $this->name="复本 名字 "   //$this 表示复本
     }
    $p1 clone $p;
        

class Person {
var $name;
protected $age;
protected $***;
static $country="中国";
const HOST="localhost";

function __construct($name, $age, $***){
$this->name=$name;
$this->***=$***;
$this->age=$age;

echo "###################
";
}

function getCountry(){
return self::$country;
}

function setCountry($country){
self::$country=$country;
}

function say(){
echo "我的名-{$this->name}:,我的年龄:{$this->age},我的性别:{$this->***}.
";
}

function eat(){
echo "wwwwwwwwwwwwwwww";
}

function __call($methodName, $args){
echo "你调用的方法{$methodName}(参数:";
print_r($args);
echo ")不存在
";
}
阅读(885) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~
评论热议
请登录后评论。

登录 注册