分享下php5类中三种数据类型的区别_php技巧

public: 公有类型
    在子类中可以通过self::var 来调用 public类型的方法或属性 可以通过parent::method 来调用父类中的方法
    在实例中可以能过$obj->var 来调用 public类型的方法或属性

protected: 受保护类型
在子类中可以通过self::var 来调用 protected类型的方法或属性 可以通过parent::method 来调用父类中的方法
在实例中不能通过$obj->var 来调用 protected类型的方法或属性

private: 私有类型
该类型的属性或方法只能在该类中使用,在该类的实例、子类中、子类的实例中都不能调用私有类型的属性和方法

2.self 和 parent 的区别
a).在子类中常用到这两个对像。他们的主要区别在于self可以调用父类中的公有或受保护的属性,但parent不可以调用

b).self:: 它表示当前类的静态成员(方法和属性) 与 $this 不同,$this是指当前对像

附代码:

<?php
/**
 * parent 只能调用父类中的公有或受保护的方法,不能调用父类中的属性
 * self  可以调用父类中除私有类型的方法和属性外的所有数据
 */
class User{
 public $name;
 private $passwd;
 protected $email;
 public function __construct(){
  //print __CLASS__." ";
  $this->name= 'simple';
  $this->passwd='123456';
  $this->email = 'bjbs_270@163.com';
 }
 public function show(){
  print "good ";
 }
 public function inUserClassPublic() {
  print __CLASS__.'::'.__FUNCTION__." ";
 }
 protected function inUserClassProtected(){
  print __CLASS__.'::'.__FUNCTION__." ";
 }
 private function inUserClassPrivate(){
  print __CLASS__.'::'.__FUNCTION__." ";
 }
}

class simpleUser extends User {
 public function __construct(){
  //print __CLASS__." ";
  parent::__construct();
 }

 public function show(){
  print $this->name."//public ";
  print $this->passwd."//private ";
  print $this->email."//protected ";
 }

 public function inSimpleUserClassPublic() {
  print __CLASS__.'::'.__FUNCTION__." ";
 }

 protected function inSimpleUserClassProtected(){
  print __CLASS__.'::'.__FUNCTION__." ";
 }

 private function inSimpleUserClassPrivate() {
  print __CLASS__.'::'.__FUNCTION__." ";
 }
}

class adminUser extends simpleUser {
 protected $admin_user;
 public function __construct(){
  //print __CLASS__." ";
  parent::__construct();
 }

 public function inAdminUserClassPublic(){
  print __CLASS__.'::'.__FUNCTION__." ";
 }

 protected function inAdminUserClassProtected(){
  print __CLASS__.'::'.__FUNCTION__." ";
 }

 private function inAdminUserClassPrivate(){
  print __CLASS__.'::'.__FUNCTION__." ";
 }
}

class administrator extends adminUser {
 public function __construct(){
  parent::__construct();
 }
}

/**
 * 在类的实例中 只有公有属性和方法才可以通过实例化来调用
 */
$s = new administrator();
print '-------------------';
$s->show();
?>

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索数据类型
收益率曲线的三种类型、价格歧视 三种类型、股骨头坏死三种类型、莱温的三种领导类型是、缓慢变化维 三种类型,以便于您获取更多的相关知识。

时间: 2024-11-05 12:12:30

分享下php5类中三种数据类型的区别_php技巧的相关文章

浅谈java中math类中三种取整函数的区别_java

math类中三大取整函数 1.ceil 2.floor 3.round 其实三种取整函数挺简单的.只要记住三个函数名翻译过来的汉语便能轻松理解三大函数,下面一一介绍 1.ceil,意思是天花板,java中叫做向上取整,大于等于该数字的最接近的整数 例:math.ceil(13.2)=14 math.ceil(-13.2)=-13 2.floor,意思是地板,java中叫做向下取整,小于等于该数字的最接近的整数 例:math.floor(13.2)=13 math.floor(-13.2)=-14

IIS下PHP的三种配置方式对比_php技巧

在Windows IIS 6.0下配置PHP,通常有CGI.ISAPI和FastCGI三种配置方式,这三种模式都可以在IIS 6.0下成功运行,下面我就讲一下这三种方式配置的区别和性能上的差异.   1.CGI(通用网关接口/Common Gateway Interface)一般是可执行程序,例如EXE文件,和WEB服务器各自占据着不同的进程,而且一般一个CGI程序只能处理一个用户请求.这样,当用户请求数量非常多时,会大量占用系统的资源,如内存.CPU时间等,造成效能低下.   2.ISAPI(

PHP5.2中PDO的简单使用方法_php技巧

本文实例讲述了PHP5.2中PDO的简单使用方法.分享给大家供大家参考,具体如下: 一.PDO配置 1.确保PHP版本为5.2.5以上 2.在php.ini中找到Dynamic Extensions扩展部分,去掉extension=php_pdo.dll前面的分号 3.去掉相应数据库PDO扩展前面的分号,如:extension=php_pdo_mysql.dll 二.范例中数据库 CREATE TABLE tablename ( id mediumint(8) UNSIGNED NOT NULL

Windows2003下php5.4安装配置教程(IIS)_php技巧

本文与<Windows2003下php5.4安装配置教程(Apache2.4)>(点击打开链接)为姊妹篇,只是php所用的服务器有点不同,这里一个是Apache2.4,一个是Windows2003自带的IIS服务器. 一.在Windows2003安装IIS 1.首先打开Windows2003的控制面板,查看是否有"管理工具",没有也不要紧,点击"添加或删除程序".有的话,可以直接进入第二步,IIS的配置. 2.在弹出的窗口,选择添加/删除Windows组

CI框架中site_url()和base_url()的区别_php技巧

在使用CI框架的使用经常碰到跳转和路径方面的问题,site_url()和base_url()很容易混淆,下面来说说他们的区别! 假如你config文件里面的base_url和index_page是这样定义的: config['base_url'] = "http://domain.com/"; config['index_page'] = "index.php"; 那么你若使用site_url("news/php/2");则实际url为 http

SQL Server中date、datetime、smalldate三种数据类型的区别

环境:SQLServer 2008 R2 问题:SQLServer date.datetime.smalldate区别 解决: datetime 从1753年1月1日到9999年12月31日的日期和时间数据,精确度为百分之三秒(等于   3.33毫秒或0.00333秒).如下表所示,把值调整到.000..003.或.007 秒的增量. 日期和 时间部分,可以表示的日期范围从公元1753年1月1日00:00:00.000 到9999年12月31日23:59:59.997 ,精确到 3.33毫秒,它

PHP类中Static方法效率测试代码_php技巧

类的定义如下: 复制代码 代码如下: class test { public static function a(){} public function b(){} } $obj = new test; 比较以下几种情况 test::a(); $obj->a(); $obj->b(); 测试代码: 复制代码 代码如下: $obj = new test; $test_times = 100; $times = 10000; $effi1 = array(); $effi2 = array();

php5编程中的异常处理详细方法介绍_php技巧

1 首先是try,catch  <?php  $path = "D:\\\\in.txt";  try //检测异常  {  file_open($path);  }  catch(Exception $e) //捕获异常  {  echo $e->getMessage();  }  function file_open($path)  {  if(!file_exists($path)) //如果文件无法找到,抛出异常对象  {  throw new Exception(

php下HTTP Response中的Chunked编码实现方法_php技巧

进行Chunked编码传输的HTTP Response会在消息头部设置: Transfer-Encoding: chunked 表示Content Body将用Chunked编码传输内容. Chunked编码使用若干个Chunk串连而成,由一个标明长度为0的chunk标示结束.每个Chunk分为头部和正文两部分,头部内容指定下一段正文的字符总数(十六进制的数字)和数量单位(一般不写),正文部分就是指定长度的实际内容,两部分之间用回车换行(CRLF)隔开.在最后一个长度为0的Chunk中的内容是称