原文地址:http://small.aiweimeng.top/index.php/archives/54.html

const: 定义常量,一般定义后不可改变
static: 静态,类名可以访问
public: 表示全局,类内部外部子类都可以访问;
private: 表示私有的,只有本类内部可以使用;
protected: 表示受保护的,只有本类或子类或父类中可以访问;

定义常量也可用```define```定义。

const与define在定义常量时会有如下区别:

1. const用于类成员变量,一经定义不可修改,define用于全局常量,不可用于类成员变量的定义,
const可在类中使用,define不能。
2. const定义的常量大小写敏感,而define可通过第三个参数(为TRUE表示大小写不敏感)来指定大小写是否敏感。
在运行时定义一个常量。define('TXE',100,TRUE);
3. const不能在条件语句中定义常量,而define函数可以。if($a>10){define('LE','hello');}

class Demo
{ //定义常量【自php5.3后】,一个常量是属于一个类的,而不是某个对象的
//不可改变的
const EVENT = 'const'; static $event = 'static'; public $eventPublic = 'public'; private $eventPrivate = 'private'; protected $eventProtected = 'protected'; public function test()
{
//使用self访问类中定义的常量
echo self::EVENT.'<br/>'; //同常量一样使用self
echo self::$event.'<br/>'; //公共变量,受保护的变量,私密的变量通过$this访问
echo $this->eventPublic.'<br/>'; //受保护的和私密的变量只能在当前类中访问
echo $this->eventPrivate.'<br/>';
echo $this->eventProtected.'<br/>';
} //魔术方法
public function __get($name)
{
return $this->$name;
} } class One extends Demo
{ public function testOne()
{
//可继承父级使用parent访问
echo parent::EVENT.'<br/>';
echo parent::$event.'<br/>'; //也可通过父类直接访问
echo Demo::EVENT.'<br/>';
echo Demo::$event.'<br/>'; //继承父级中的成员变量后,只能访问公共变量
//私有变量和受保护的变量不能在子类中访问
echo $this->eventPublic; } }
$obj_1 = new Demo;
$obj_1->test();
echo "=================<br/>";
$obj = new One;
$obj->testOne();

  

运行结果:

const
static
public
private
protected
=================
const
static
const
static
public

  

PHP中const,static,public,private,protected的区别的更多相关文章

  1. php class中public,private,protected的区别,以及实例

    一,public,private,protected的区别 public:权限是最大的,可以内部调用,实例调用等. protected: 受保护类型,用于本类和继承类调用. private: 私有类型 ...

  2. public,private,protected的区别

    一,public,private,protected的区别public:权限是最大的,可以内部调用,实例调用等.protected: 受保护类型,用于本类和继承类调用.private: 私有类型,只有 ...

  3. Java什么时候用static,public,private,protected?

    这么说吧,假如你是一个类: public表示你愿意其他人看见你的物品(字段.属性),或者你愿意帮别人做事(方法): private表示你不愿意其他任何人看见你的私人物品,也不愿意帮任何人做事: pro ...

  4. php 中 public private protected的区别

    public 子类,外部都可调用. protected 子类可以调用,外部不可以调用. private 子类不可以调用,外部不可以调用. <?php class AA { public func ...

  5. PHP中public,private,protected,abstract等关键字用法详解

    PHP中常用的关键字 在PHP中包含了很多对函数和类进行限制的关键字,常用的通常有abstract,final,interface,public,protected,private,static等等, ...

  6. Java中public,private,protected,和默认的区别

    Java中public,private,protected,和默认的区别 1.private修饰词,表示成员是私有的,只有自身可以访问: 2.protected,表示受保护权限,体现在继承,即子类可以 ...

  7. 深入浅出OOP(五): C#访问修饰符(Public/Private/Protected/Internal/Sealed/Constants)

    访问修饰符(或者叫访问控制符)是面向对象语言的特性之一,用于对类.类成员函数.类成员变量进行访问控制.同时,访问控制符也是语法保留关键字,用于封装组件. Public, Private, Protec ...

  8. 访问权限系列一(public/private/protected/default):成员变量

    通过两个程序包对自身或互相之间的访问,得到结果.(先编译Test_01,得到class文件,通过Test的集中访问情况) 如下Test.java中内容: package com.java; /* * ...

  9. 【转】C++ 类访问控制public/private/protected探讨

    示例1:---------------------------------------- class C{ int c1; int c2;public: void set(C* s, int i, i ...

随机推荐

  1. 数组也继承了Object类

    C++ 最根上的类有好多,也可以随便地定义.

  2. 【Python】Java程序员学习Python(九)— 集合(list、tuple、range)和映射(dict)

    集合是一门语言最重要的一个特性,对集合支持的程度越好,使用起来越方便 一.表现形式 1.1 list list的基本用法: 使用中括号包裹,[1,2,3] 元素类型可以是任意类型,同样可以是list ...

  3. Problem executing scripts APT::Update::Post-Invoke-Success 'if /usr/bin/test -w /var/cache/app-info -a -e /usr/bin/appstreamcli; then appstreamcli refresh > /dev/null; fi'

    运行sudo apt-get update 时Ubuntu 16.04出现: Problem executing scripts APT::Update::Post-Invoke-Success 'i ...

  4. 【翻译&转载】shader的导数函数介绍

    原文链接:http://www.aclockworkberry.com/shader-derivative-functions/ 他人的翻译:http://blog.sina.com.cn/s/blo ...

  5. python相关知识/技巧文摘

    python文件和目录操作 python连接mysql数据库 Python字符编码详解 unicode相关介绍

  6. Linux系统管理员命令:sudo

    sudo是个统管一切的命令.它的字面意思是代表“超级用户才能做!”(super user do!)对Linux系统管理员或高级用户而言,它是必不可少的最重要的命令之一.你可曾有过这样的经历:在终端中试 ...

  7. javascript版format函数,方便实现复杂字串连接

    javascript版format函数,方便实现复杂字串连接 String.prototype.format = function () { var args = arguments; console ...

  8. DPM恢复点和保持期、常见问题排除指南

    “恢复点计划”确定应为该保护组创建多少个恢复点. 对于文件保护,选择希望创建恢复点的日期和时间. 对于支持增量备份的应用程序数据保护,同步频率决定了恢复点计划. 对于不支持增量备份的应用程序数据保护, ...

  9. Hybris阶段总结(2)hybris架构

    年前总结一下这两个星期在SAP实习学到的一些东西 先上图: ​ 从底往上总结,之后会有个小例子来解释一下 1.Persistence layer 就是作为hybris所连接的数据库这一层,其中hybr ...

  10. socks5代理使用和安装配置

    Socks简介: 详情可以百度,不过我猜你对那一大堆术语也会像我一样觉得无语, 所以我觉得你可以简单理解为它可以比较完美代理http/ftp/smtp等多种协议的代理工具就行了. 其中最具有典型例子的 ...