当前位置: 首页 > news >正文

湖北省住房和城乡建设厅官方网站中国新闻最新消息

湖北省住房和城乡建设厅官方网站,中国新闻最新消息,国家卫健委今日疫情报告,南京协会网站建设PHP面向对象01:面向对象基础一、关键字说明二、技术实现1. 定义类2. 类成员三、 访问修饰限定符1. public2. protected3. private4. 空修饰限定符四、类内部对象五、构造和析构1. 构造方法2. 析构方法六、范围解析操作符1. 访问类常量2. 静态成员3. self关键字七、类…

PHP面向对象01:面向对象基础

  • 一、关键字说明
  • 二、技术实现
    • 1. 定义类
    • 2. 类成员
  • 三、 访问修饰限定符
    • 1. public
    • 2. protected
    • 3. private
    • 4. 空修饰限定符
  • 四、类内部对象
  • 五、构造和析构
    • 1. 构造方法
    • 2. 析构方法
  • 六、范围解析操作符
    • 1. 访问类常量
    • 2. 静态成员
    • 3. self关键字
  • 七、类的加载
    • 1. 手动加载
    • 2. 自动加载
  • 八、对象克隆

一、关键字说明

  1. class:类。
  2. object:对象,也称实例。
  3. new:实例化。
  4. member:类成员。
  5. method:方法,也称成员方法。
  6. property:属性,也称成员变量。
  7. constant:类常量。

二、技术实现

1. 定义类

  • 定义类基本语法:class 类名 {}
<?php
# 定义类
class Nothing {}
# 实例化对象
$nothing = new Nothing;var_dump($nothing);

在这里插入图片描述
数据类型为对象,对象属于Nothing类,编号为1,当前对象里面有0个属性。

2. 类成员

  • 指直接定义在类结构内部的以及成员,即直接依赖{}的成员。
  • 分为三种:成员变量、成员方法、类常量。
  1. 成员变量:

    • 需要在变量名字前使用关键字 public。
    • 语法:public 变量名 [=值];
    class Nothing {public $a;public $b = 1;
    }
    
    • 访问方式:$对象名->属性名;
    # 实例化对象
    $nothing = new Nothing;# 增
    $nothing->c = 20;
    # 删
    unset($nothing->a);
    # 改
    $nothing->b = -1;
    # 查
    echo $nothing->b;
    
  2. 成员方法:

    • 在类结构{}下定义的函数。
    class Salar {public function display() {echo __CLASS__;}
    }
    
    • 成员方法访问:$对象名->方法名();
    $s = new Salar();
    $s->display();
    
  3. 类常量:

    • 定义方式:const 常量名 = 值;
    class Saler {const PI = 3.14;
    }
    
    • 类常量不能由对象来进行访问。

三、 访问修饰限定符

  • 用来控制属性或方法的访问位置。
  • 分为三种:public、protected、private。
  • 多使用private,少使用public。

1. public

  • 表示公有,所修饰的内容可以在任何地方都可访问。
    在这里插入图片描述

2. protected

  • 受保护,只能在当前类和相关类的内部访问。

在这里插入图片描述

3. private

  • 私有,只能在当前类的内部访问。
    在这里插入图片描述

4. 空修饰限定符

  • 只有方法可以省略修饰限定符,默认为public。
  • 不建议省略。

四、类内部对象

  • $this是内置对象,代表的是对象。
  • $this不受修饰限定符影响。
    在这里插入图片描述

五、构造和析构

1. 构造方法

  • 构造方法:__construct(),是一种类结构特有的特殊方法,实例化对象时,对象自动调用。
class Person{public function __construct() {echo __CLASS__;}
}
  • 初始化属性
    在这里插入图片描述

2. 析构方法

  • 析构方法__destruct在对象被销毁时会自动调用。
  • 使用析构方法的情况:
    1. 保存对象的变量被用来保存其他数据,导致对象内存没有任何变量引用。
    2. 删除对象变量。
    3. 脚本执行结束,释放所有变量。
<?php
class Saler{public function __destruct(){echo __FUNCTION__;}
}$saler = new Saler();
unset($saler);

六、范围解析操作符

  • 由两个冒号组成::,可以实现类直接访问类成员。格式:类名::类成员
  • 如果需要有一些自身的数据和操作(类常量、静态成员),由类来访问。属性和方法由对象访问。

1. 访问类常量

class Saler {const PI = 3.14;
}
echo Saler::PI;

2. 静态成员

  • 静态成员,是由static关键字修饰的类成员,表示该成员属于类访问。
  • 不建议使用对象访问带 static 的静态成员。
  • 多用静态,少用非静态。
  • 静态属性:
    <?php
    class Person{public $money = 0;public static $count = 0;
    }$person = new Person();
    // 访问成员属性
    echo $person->money;
    echo "<br>";
    // 访问静态属性
    echo Person::$count;
    
  • 静态方法:
    <?php
    class Person{public static $count = 0;public static function showCount() {echo Person::$count, __FUNCTION__;}
    }
    Person::showCount();
    

3. self关键字

  • 静态成员中不能使用 $this,只能使用 self
  • self关键字在类的内部使用,用于代替类名。
<?php
class Person{private static $count = 0;public static function showClass() {echo Person::$count;echo self::$count;  // self代替类名}
}
Person::showClass(); 
  • 当构造方法被私有化,就没法在类外部实例化对象,此时可以在类内部进行对象实例化。
<?php
class Person{private function __construct() { }public static function getInstance() {return new self();}
}$person = Person::getInstance();

七、类的加载

1. 手动加载

  • 即要访问某个类之前,使用文件包含将类所在的文件加载进来
  • 加载类文件比较消耗资源,所以事先用class_exists()来判断是否存在。
<?php
if (!class_exists("Saler")) {include_once "Saler.php";
}
$saler = new Saler();

2. 自动加载

  • 自动加载是PHP提供的一种加载机制。
  • php7以前:实现定义一个函数__autoload(),然后当系统需要实用类,而内存中不存在的时候,系统会自动调用__autoload()来加载类文件。
  • php7以后:自动加载通过 spl_autoload_register() 实现
    <?php
    class Autoload{function c_autoload($class) {$c_file = 'c/' . $class . '.php';if (file_exists($c_file)) require_once $c_file;}function d_autoload($class) {$c_file = 'd/' . $class . '.php';if (file_exists($c_file)) require_once $c_file;}
    }spl_autoload_register(array("Autoload", "c_autoload"));
    spl_autoload_register(array("Autoload", "d_autoload"));$saler = new Saler();
    

八、对象克隆

  • clone可以克隆对象,通过已有的对象复制一个新的同样的对象,两个对象不是同一个内存地址。
<?php
class Son{public $name;private $money = 0;
}$son = new Son();
$son_clone = clone $son;
  • 在对象被克隆时,新对象会自动调用__clone()方法。
class Son{public $name;private $money = 0;public function __clone() {var_dump($this);}
}
  • 如果不允许在外部克隆对象,将__clone()私有化。
http://www.khdw.cn/news/38913.html

相关文章:

  • 合肥自助建站百度快照优化公司
  • 通州做网站百度网站打不开
  • 政务网站建设相关文件百度关键词查询排名怎么查
  • 政府网站建设管理工作开展情况怎么申请建立网站
  • 自己搭建服务器做视频网站elo机制
  • 区块链 网站 怎么做seo基础入门教程
  • 做普通网站多少钱网站如何优化一个关键词
  • 天津网站建设定做网站优化推广公司
  • 浏览器不限制访问网站百度主页入口
  • 设计师找灵感的网站seo搜索引擎优化试题及答案
  • 网站建设预算表样本北京seo薪资
  • 免费网站空间php北京网络排名优化
  • 九江网站设计服务机构哪家好策划公司排行榜
  • 提供手机自适应网站建设维护万网域名查询接口
  • 兴义之窗网站怎么做淘宝一个关键词要刷多久
  • 17网站一起做网店档口出租河南推广网站
  • 新手制作ppt详细步骤seo 是什么
  • 寺庙网站建设方案公司建立网站的步骤
  • 注册服务器网站哪个好网站推广优化排名公司
  • 影楼网站源码b站推广怎么买
  • 英文网站模板百度广告优化
  • 78建筑人才网2019网站seo
  • 发布网站搭建教程crm
  • 有了域名 建设自己的网站哪个平台可以免费推广
  • 网站建设与管理维护 大学论文永久不收费免费的聊天软件
  • 语言互动网站建设广州seo推广营销
  • 企业做网站的痛点有哪些seo网站优化报价
  • 怎样用wordpress做网站网络营销课程感悟
  • 易语言可以做网站嘛seo职业培训班
  • 郑州网站开发河南网站seo推广