<?php

/**
* class Index
* 类包含什么
* 1.创建类
* 2.类的属性和类中方法
* 3.类中访问修饰符
* 4.类的封装、继承、多态
*/ // 创建类,创建的类名是采用驼峰方式
class Index
{
/**
* Index constructor.
* 类的属性,即类中的成员变量
* 1.常量:公共可用,通常大写,若果包含多个单词则以下划线分割
* 2.自定义变量
* 类中的修饰符,
* private(私有的,被该修饰符修饰的成员属性和方法只能在本类中使用),
* public(公有的,被该修饰符修饰的成员属性和方法在任何地方均可使用,若果我们创建的函数没设置修饰符,则默认为public),
* protected(受保护的,被该修饰符修饰的成员属性和方法可以在本类中使用或者在子类中使用),
* static(静态作用域,被该修饰符修饰的成员属性和方法在所有类中均可使用,调用的是有直接使用 类名::属性名/方法名(::被成为范围解释操作符号)),
*
*/
protected $name; // 定义一个受保护的成员属性
const USER_AGE = 12; // 创建一个常量,在调用常量的时候不能间接的使用->来调用该常量
static $height = 120; // 创建一个静态属性
/**
* Index constructor.
* 类的方法
* 最基本的是构造函数,__construct,构造函数在类被实例化的时候,自动调用.当类中不存在构造函数时,默认与类名相同的函数作为构造函数
* 与构造函数相对的就是析构函数,__destruct,析构函数是在类被调用完成时,才执行析构函数
* 自定义函数,类名采用驼峰式命名规范,创建的函数,可以带上参数,也可以不带参数,同时可以给参数这是一个默认值
*/ /**
* 创建构造函数
*/
public function __construct(){
$this->name = "张三"; // 调用类中的成员属性,直接使用$this->
} /**
* 创建public类型的函数
*/
public function index($rank = 12){
echo "大家好,我叫".$this->name."我今年".self::USER_AGE."岁了!我的体重是".Index::$height."公斤。我现在在学校成绩排名为".$rank."名<br/>";
} /**
* 创建静态函数
*/
static function test(){
echo "你正在调用类中的静态函数,恭喜你采用这种方式调用成功了!";
} /**
* 创建析构函数
*/
function __destruct(){
echo "此时类被引用已经结束了!";
} } // 实例化类
$obj = new Index();
$obj->index(); // 不传递参数,此时会打印出如下内容
/**
* 大家好,我叫张三我今年12岁了!我的体重是120公斤。我现在在学校成绩排名为12名
* 此时类被引用已经结束了!
*/ $obj->index(15); // 不传递参数,此时会打印出如下内容
/**
* 大家好,我叫张三我今年12岁了!我的体重是120公斤。我现在在学校成绩排名为15名
* 此时类被引用已经结束了!
*/ // 调用类中静态函数
$obj::test();// 或者采用下面的方式
Index::test(); // 调用类中成员属性
echo ($obj::$height); // 或者采用下面的方式
echo (Index::$height);

  

php面向对象基础知识整理之类中的属性和方法的使用的更多相关文章

  1. Java基础知识整理之static修饰属性

    static 关键字,我们在开发用的还是比较多的.在<Java编程思想>有下面一段话 static 方法就是没有 this 的方法.在 static 方法内部不能调用非静态方法,反过来是可 ...

  2. Kali Linux渗透基础知识整理(四):维持访问

    Kali Linux渗透基础知识整理系列文章回顾 维持访问 在获得了目标系统的访问权之后,攻击者需要进一步维持这一访问权限.使用木马程序.后门程序和rootkit来达到这一目的.维持访问是一种艺术形式 ...

  3. Kali Linux渗透基础知识整理(二)漏洞扫描

    Kali Linux渗透基础知识整理系列文章回顾 漏洞扫描 网络流量 Nmap Hping3 Nessus whatweb DirBuster joomscan WPScan 网络流量 网络流量就是网 ...

  4. 【OGG】OGG基础知识整理

    [OGG]OGG基础知识整理 一.GoldenGate介绍 GoldenGate软件是一种基于日志的结构化数据复制软件.GoldenGate 能够实现大量交易数据的实时捕捉.变换和投递,实现源数据库与 ...

  5. Python 面向对象基础知识

    面向对象基础知识 1.什么是面向对象编程? - 以前使用函数 - 类 + 对象 2.什么是类什么是对象,又有什么关系? class 类: def 函数1(): pass def 函数2(): pass ...

  6. java部分基础知识整理----百度脑图版

    近期发现,通过百度脑图可以很好的归纳总结和整理知识点,本着学习和复习的目的,梳理了一下java部分的知识点,不定期更新,若有不恰之处,请指正,谢谢! 脑图链接如下:java部分基础知识整理----百度 ...

  7. Java面向对象基础知识汇总

    OOP:Orient Object Programe AOP:Aspect Orient Programe 封装:Encapsulation 继承:Inheritance 多态:Polymorphmi ...

  8. 《前端之路》- TypeScript (四) class 中各类属性、方法,抽象类、多态

    目录 一.TypeScript 中的类 二.TypeScript 中类的继承 三.TypeScript 中公共,私有与受保护的修饰符 3-1.属性的 public 3-2.属性的 private 3- ...

  9. mybatis生成的pojo 中的属性或方法不够我们当做dto使用时

    我们在写代码的时候,如果一个 mybatis生成的pojo 中的属性或方法不够我们使用(当做dto和前台交互)时,我们有两种方法: 第一: 直接在 原 pojo 中增加属性或者方法 第二:我们可以再写 ...

随机推荐

  1. Android 屏幕录制

    自己实现了Android的屏幕录制App. 用了MediaProjection类来作为源,MediaRecoder来捕捉,编码转换为本地视频. 效果图: 主要是这段代码开始录像: startActiv ...

  2. 《ArcGIS Runtime SDK for Android开发笔记》

    开发笔记之基础教程 ArcGIS Runtime SDK for Android 各版本下载地址 <ArcGIS Runtime SDK for Android开发笔记>——(1).And ...

  3. ArcGIS Enterprise 10.5.1 静默安装部署记录(Centos 7.2 minimal)- 1、安装前准备

    安装前准备 上传文件到服务器,x-ftp   xshell登陆Centos 检查机器名 修改机器名为:portal.cloud.local   方法一:零时设置,重启后失效,该方法不可取     方法 ...

  4. Qtl和JS、HTML通信/交互

    http://www.cnblogs.com/sigma0/p/7346727.html Qt的QWebChannel和JS.HTML通信/交互驱动百度地图 0 前言 我一个研究嵌入式的,不知道怎么就 ...

  5. C++字符分割

    AfxExtractSubString 表头: <afxwin.h> BOOL AFXAPI AfxExtractSubString ( CString& rString, LPC ...

  6. dedecms 模板文件不存在 无法解析文档!问题定位方法!

    生成静态的时候,经常会遇到“模板文件不存在,无法解析文 档!”的问题.很多朋友试过论坛里很多方法,都是针对某些人可以解决,某些人的问题依旧,为什么呢?其实问题很可能确实是多种多样的,表现结果却是一样, ...

  7. GCO团队合作

    队名:GCO 队员:   B20150304116谢冰媛 (组长) B20150304401王粲 B20150304115钟玺琛            B20150304226梁天海          ...

  8. typescript 添加基础类型的扩展方法

    以时间转换为案例: //声明接口,也是在声明date这个基础类型要定义一个format的扩展方法,不写接口声明会报错 interface Date { Format(fmt:string):strin ...

  9. codeforces 609E Minimum spanning tree for each edge

    E. Minimum spanning tree for each edge time limit per test 2 seconds memory limit per test 256 megab ...

  10. IntelliJ IDEA 快速搭建 Spring MVC环境

    IntelliJ在业界被公认为最好的java开发工具之一,尤其在智能代码助手.代码自动提示.重构.J2EE支持.Ant.JUnit.CVS整合.代码审查. 创新的GUI设计等方面的功能可以说是超常的. ...