1.final关键字
<?php

//final关键字修饰的类 是最终的类不能被继承
class demo{

    //final关键字修饰的成员方法 是最终版本的方法不能被重写
    final public function say(){
        echo "demo say";
    }
}

class demo1 extends demo{

    public function say(){
        echo "demo1 say";
    }
}

$d1 = new demo1();
$d1 -> say();
?>

2. static 关键字
<?php

//用于修饰类的成员属性和成员方法,静态的成员属性和静态的成员方法
//内部访问;外部可以不用实例化就可以直接访问
//为什么要用static关键字
//只能初始化一次
//访问方式:self::$name self::say()
//访问控制:public protected private 

class demo{

    //static 如果修饰成员属性。这个成员属性就是静态的成员属性
    static public $name = "zhangsan";
    static public $num = 0; //静态的成员属性只能初始化一次。所有实例化的对象访问的都是同一个静态成员属性

    public function __construct(){
        self::$num++;
    }

    //static 如果修饰成员方法。这个方法就是静态的成员方法
    static public function say(){

        //self 代表本类
        return self::$name; //在类的内部访问静态成员属性 self::成员属性名
    }
}

echo demo::$name; //在类的外部访问静态的成员属性。类名::成员属性名
echo demo::say(); //在类的外部访问静态的成员方法。类名::成员方法名

$d1 = new demo();
echo "<br />";
echo demo::$num;

$d2 = new demo();
echo "<br />";
echo demo::$num;
?>

3.单例设计模式
<?php
class DB{

    static $obj = null;    //声明一个静态成员属性,主要用静态成员属性只能初始化一次的特性。把它作为标识

    //用于连接数据库
    private function __construct(){
        echo "mysql linked...";
    }

    //静态的成员方法可以不需要对象就可以直接访问。这个方法用于得到对象
    static function getObj(){
        //判断静态成员属性是否是初始值
        if(is_null(self::$obj)){
            //如果是初始值。就实例化对象
            self::$obj = new self();    //把对象赋值给静态的成员属性
        }
        //把静态成员属性中的对象返回
        return self::$obj;
    }

    public function select(){
        echo "select data...";
    }
}

var_dump(DB::getObj());
var_dump(DB::getObj());
var_dump(DB::getObj());

4.const 关键字
<?php
class demo{
    //类里面定义常量用const
    //常量定义时就要赋初始值
    //常量一但定义就不能修改
    //如果是多个单词组成的常量名要用下划线分隔
    const HOST = '127.0.0.1';
    const DB_NAME = 'jike';

    public function getConst(){
        //在类的内部访问常量 self::常量名
        return self::DB_NAME;
    }
}

//在类的外部访问常量 类名::常量名
echo demo::HOST;
echo "<hr />";
$demo = new demo();
echo $demo -> getConst();
?>

5.instanceof 关键字
<?php

class demo{

}

class demo1 extends demo{

}

$demo = new demo();
$demo1 = new demo1();

//instanceof 可以用于判断一个对象是否由一个类或这个类子类实例化来的
var_dump($demo instanceof demo);
var_dump($demo1 instanceof demo1);
var_dump($demo instanceof demo1);
var_dump($demo1 instanceof demo);
?>

php常用关键字的更多相关文章

  1. Java SE 基础:常用关键字

    Java SE 基础:常用关键字 常用关键字表

  2. JAVA常用关键字

    Java 中常用关键字: 一一解释(先以印象注明含义,若有错误或未填写的待用到后补充.更新):(蓝色为不确定部分) abstract : 虚类 boolean : 类型定义——布尔型 break : ...

  3. Oracle数据库常用关键字以及函数

    常用关键字 insert into---插入数据 delete---删除数据 update---更新一条数据 select---实际工作中尽量不要写* set---设置某些属性 where---给执行 ...

  4. Selenium2Lib库之鼠标事件常用关键字实战

    1.2 鼠标事件常用关键字 1.2.1 Click Button关键字按F5 查看Click Button关键字的说明,如下图: Click Button关键字 是用于点击页面上的按钮.参数locat ...

  5. Cucumber常用关键字

    常用关键字(中英文对应) 对应的测试用例 Feature(功能) test suite (测试用例集) background(背景)   Scenario(场景) test case(测试用例) Sc ...

  6. AppiumLibrary常用关键字

    通过上一章节,open application关键字的使用,相信大家对手机自动化充满了兴趣,那么今天这一章节,主要介绍AppiumLibrary中常用关键字的使用. 一.实用函数 关键字 含义 实例 ...

  7. JAVA基础部分复习(六、常用关键字说明)

    /** * JAVA中常用关键字复习 * final * finalize * finally * * @author dyq * */ public class KeyWordReview exte ...

  8. Robot Framework常用关键字介绍

    常用关键字介绍 在学习一门编程语言的时候,大多教材都是从打印“hello world”开始.我们可以像编程语言一样来学习 Robot Framework.虽然通过 RIDE 提供“填表”一样的写测试用 ...

  9. python保留关键字和常用关键字

    python保留关键字和常用关键字如下: 上图是python3中的关键字,python2.7中的关键字部分会有区别,具体在自己打印输出查看: import keyword print ' '.join ...

  10. oracle常用关键字和函数

    数据库的增删改查: 增:insert into ... values(); 例:insert into p_emp values(sq_emp.nextval,,sysdate,,null,,); c ...

随机推荐

  1. Java远程方法调用(Remote Method Invocation,RMI)

    Java RMI简介: 它是Java的一个核心API和类库,允许一个Java虚拟机上运行的Java程序调用不同虚拟机上运行的对象中的方法,即使这两个虚拟机运行于物理隔离的不同主机上. Java RMI ...

  2. MVC 好记星不如烂笔头之 ---> 全局异常捕获以及ACTION捕获

    public class BaseController : Controller { /// <summary> /// Called after the action method is ...

  3. Merge的用法

    merge的使用说明: merge [into] [目标表] using <源表> on 条件 when matched 操作 when not matched 操作; 首先,请参看两张表 ...

  4. alias实现命令别名

    需要经常进入/srv/www/app/account这个目录,每次都得重复的输入这一长串路径进入该目录,显得麻烦而费时,因此可以将"cd /srv/www/app/account" ...

  5. blur和click事件的先后顺序问题

    这两个同时用会有冲突.懒得翻译了,需要的自己看哈. 以下摘自stackoverflow. I have an input field, where I try to make autocomplete ...

  6. A*算法——启发式搜索

    A*算法 本质还是搜索:加了优化而已 关于这个优化,听到两种说法: 1.剪枝 通过判断预计最少还要几步,加强版剪枝 比如说一个经典剪枝: 如果 步数≥已知最小值 则 剪枝 升级| V 如果 步数+最少 ...

  7. BZOJ3252: 攻略

    Description 题目简述:树版[k取方格数]   众所周知,桂木桂马是攻略之神,开启攻略之神模式后,他可以同时攻略k部游戏. 今天他得到了一款新游戏<XX半岛>,这款游戏有n个场景 ...

  8. SQL Server 日期字段作为查询标志字段的注意事项

    今天在做一个数据抽取程序时遇到一个问题困扰好久才解决,这不是技术问题,而是常识和细心的问题.写出来让大家引起重视一下. 由于之前的程序长期用Oracle,并且数据标志字段采用的日期类型.在Oracle ...

  9. xp系统重绘边框线不显示(首次加载没有触发paint事件)

    同样是,重绘边框事件,win7系统显示正常,而xp系统却不显示,这是什么原因造成的呢? 于是,小编开始百度,不停的查找原因,通过一番查找,小编也意外的收获了一些内容: 例如:窗口的拖动,放大,缩小,等 ...

  10. Python2 下 Unicode 的一个小bug

    关于Python的编码问题已经是老生常谈了,此处主要是介绍一个罕见的问题,也算是Python2的一个bug了(Python3不会有此问题). 在有时候我们去爬取网页或者调用一些第三方库获取文本的时候, ...