dim private public static_PHP中const,static,public,private,protected的区别

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.'
';
//同常量一样使用self
echo self::$event.'
';
//公共变量,受保护的变量,私密的变量通过$this访问
echo $this->eventPublic.'
';
//受保护的和私密的变量只能在当前类中访问
echo $this->eventPrivate.'
';
echo $this->eventProtected.'
';
}
//魔术方法
public function __get($name)
{
return $this->$name;
}
}
class One extends Demo
{
public function testOne()
{
//可继承父级使用parent访问
echo parent::EVENT.'
';
echo parent::$event.'
';
//也可通过父类直接访问
echo Demo::EVENT.'
';
echo Demo::$event.'
';
//继承父级中的成员变量后,只能访问公共变量
//私有变量和受保护的变量不能在子类中访问
echo $this->eventPublic;
}
}
$obj_1 = new Demo;
$obj_1->test();
echo "=================
";
$obj = new One;
$obj->testOne();

运行结果:

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

dc82bab6ca3fedcafa431869b7d88ed7.png

更多精彩

敬请关注“PHP技术大全”微信公众号

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/276651.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C#图解教程 第六章 深入理解类

深入理解类 类成员 前两章阐述了9种类成员中的两种:字段和方法。本章将会介绍除事件(第14章)和运算符外的其他类成员,并讨论其特征。 成员修饰符的顺序 字段和方法的声明可以包括许多如public、private这样的修饰符。本章还会讨论许多其他修饰符。多个修…

Apache用户身份验证

原文链接:http://www.yylog.org/?p4830 Apache用户身份验证 在apache应用过程中,管理员经常需要对apache下的目录做一些限制,不希望所有用户都能访问该目录下的文件,只对指定用户访问,此时我们就要用到apache用户身…

携程elong相继牵手支付宝转“危”为“机”

新华网浙江频道1月16日电 自电子机票全面普及以来,航空公司机票直销的力度不断加强正给传统的机票代理甚至在线旅游平台带来了极大的生存压力。 而面对危机,在进一步丰富自身产品服务之外,大的在线旅行平台也终于找到对策。继eLong此前与支付…

c# 获取word表格中的内容_Java 获取、删除Word文本框中的表格

本文介绍如何来获取Word文本框中包含的表格,以及删除表格。程序测试环境包括:IDEAJDK 1.8.0Spire.Doc.jar注:jar导入,可通过创建Maven程序项目,并在pom.xml中配置Maven仓库路径,并指定Free Spire.Doc for J…

Array.prototype.reduce 的理解与实现

Array.prototype.reduce 是 JavaScript 中比较实用的一个函数,但是很多人都没有使用过它,因为 reduce 能做的事情其实 forEach 或者 map 函数也能做,而且比 reduce 好理解。但是 reduce 函数还是值得去了解的。 reduce 函数可以对一个数组进行…

PS抠图方法[photoshop中文教程]

PS抠图方法 一、魔术棒法——最直观的方法   适用范围:图像和背景色色差明显,背景色单一,图像边界清晰。   方法意图:通过删除背景色来获取图像。   方法缺陷:对散乱的毛发没有用。   使用方法&#xff1a…

我的核心技术都是从哪里学到的?如何提高成长的?分享给大家。

1997年,我在读黑龙江大学读大二时,我认识了一个内蒙古大学计算机专业毕业的一个高材生,那时我那朋友引导了我很多,他那时候在我们家那边开一个IT公司,他知道如何靠IT技术赚钱,如何靠程序等赚钱,…

python线性回归算法简介_Python实现的简单线性回归算法实例分析

本文实例讲述了Python实现的简单线性回归算法。分享给大家供大家参考,具体如下: 用python实现R的线性模型(lm)中一元线性回归的简单方法,使用R的women示例数据,R的运行结果: > summary(fit) Call: lm(formula weig…

Object/Relation Mapping 对象关系映射

对象-关系映射(Object/Relation Mapping,简称ORM),是随着面向对象的软件开发方法发展而产生的。面向对象的开发方法是当今企业级应用开发环境中的主流开发方法,关系数据库是企业级应用环境中永久存放数据的主流数据存储…

FastReport使用方法(C/S版)

前言 这两天群里一直有群友问一些关于FastReport的问题,结合他们的问题,在这里做一个整理,有不明白的可以加 FastReport 交流群 群 号:554714044 工具 VS2017 FastReport 开始 1.新建项目,添加三个按钮。预览、设计、…

如何设置Linux时区为东八区

当我们购买美国VPS或服务器的时候,默认情况下是美国时间。对于我们定时执行某些任务会带来麻烦,所以需要设置时区为东八区。登录SSH后,执行tzselect命令。我们这里选择亚洲5.这里选择china 9。一般选东八区(北京,广东&…

python删除两个excel表中的相同元素_python筛选出两个文件中重复行的方法

查找A文件中&#xff0c;与B文件中内容不重复的内容#!usr/bin/python import sys import os字符串查找函数&#xff0c;使用二分查找法在列表中进行查询def binarySearch(value, lines): right len(lines) - 1 left 0 a value.strip() while left < right: middle int((…

求解:nhibernate2.0操作oralce提交事务时报错

代码如下: Configuration config new Configuration(); config.AddAssembly("TestCleanSnow"); ISessionFactory factory config.BuildSessionFactory(); ISession session f…

python画枫叶_python-文件的操作

一、异常 程序在运行的过程中&#xff0c;不可避免出现一些错误&#xff0c;这些错误成为异常 异常以后的代码都不会被执行 try 语句 代码块&#xff08;可能出现错误的语句&#xff09; except 异常类型 as 异常名: 代码块(出错以后执行的语句&#xff09; except 异常类型 as…

记2018年技术人一次短暂的创业

背景 2018年8月底&#xff0c;我全职加入了一家创业公司&#xff0c;具体做什么我暂时先不说吧&#xff0c;我是产品和技术负责人&#xff0c;自己出资了50w&#xff0c;大股东&#xff08;下面简称T)也就是ceo是早期阿里出身的中供销售&#xff0c;从2017年11月开始成立此公司…

如何在Apache环境下配置Rewrite规则

原文链接&#xff1a;http://faq.comsenz.com/viewnews-12 URL 静态化是一个利于搜索引擎的设置&#xff0c;通过 URL 静态化&#xff0c;达到原来是动态的 PHP 页面转换为静态化的 HTML 页面&#xff0c;当然&#xff0c;这里的静态化是一种假静态&#xff0c;目的只是提高搜…

情 人 节 快 乐

我不善于用词汇修饰我的句子&#xff0c; 我不善于用表情表达我的心情&#xff0c; 我不善于解读你那黯然的情绪&#xff0c; 我不善于去响应你小小的呼应&#xff0c; 虽然&#xff0c;你了解我&#xff0c; 你宽容于我&#xff0c; 你听我诉说&#xff0c; 你陪伴着我…

Windows 10系统安装JDK1.8与配置环境

第一步&#xff1a;下载JDK1.8 地址:https://www.oracle.com/index.html 第二步&#xff1a; 安装分两次&#xff0c;第一次是安装 jdk &#xff0c;第二次是安装 jre 。安装jdk默认的安装地址为C盘&#xff0c;安装目录 \java 之前的目录修改成你想放的目录&#xff1b;安装jr…

python3函数调用时间_Python3 time clock()方法

Python3 time clock()方法 描述 Python 3.8 已移除 clock() 方法 可以使用 time.perf_counter() 或 time.process_time() 方法替代。 Python time clock() 函数以浮点数计算的秒数返回当前的CPU时间。用来衡量不同程序的耗时&#xff0c;比time.time()更有用。 这个需要注意&am…

给apache安装mod_rewrite模块

给apache安装mod_rewrite模块 原文链接&#xff1a;http://opkeep.com/system/linux/apache_mod_rewrite.html 只是用来做参考,相关情况可跟据自己的需求进行修改 如果你的服务器apache还没有安装&#xff0c;那很简单&#xff0c;在编译apache时将mod_rewrite模块编译进去就可…