一个完整的PHP类包含的七种语法说明
类中的七种语法说明
-属性
-静态属性
-方法
-静态方法
-类常量
-构造函数
-析构函数
<?php class Student { // 类里的属性、方法和函数的访问权限有 (函数和方法是同一个概念) // private 私有的 protected 受保护的 public 公有的 // 类常量 没有访问权限修饰符 const STUDENT = 'Tom'; // 属性 public $stu_name; // 静态属性 public static $stu_num = 1; // 方法 public function stuFunction() { echo 'non_static_function','<br />'; } // 静态方法 public static function static_stuFunction() { echo 'static_function','<br />'; } // 构造函数 创建对象时自动调用 public function __construct($stu_name) { $this->stu_name = $stu_name; echo '__construct','<br />'; } // 析构函数 销毁对象时自动调用 public function __destruct() { echo '__destruct','<br />'; } } // 实例化类对象 $object = new Student('Tom'); // 对象调用属性 echo $object->stu_name,'<br />'; // 对象调用静态属性 echo $object::$stu_num,'<br />'; // 类调用静态属性 echo Student::$stu_num,'<br />'; // 使用对象分别调用方法和静态方法 $object->stuFunction(); $object->static_stuFunction(); $object::stuFunction(); $object::static_stuFunction(); // 使用类分别调用方法和静态方法 Student::stuFunction(); Student::static_stuFunction(); // 类调用类常量 echo Student::STUDENT,'<br />';
总结:
对象可以调用属性和静态属性,类只能调用静态属性。
对象可以调用方法和静态方法,类可以调用方法和静态方法。
相关推荐
-
一个完整的PHP类包含的七种语法说明
类中的七种语法说明 -属性 -静态属性 -方法 -静态方法 -类常量 -构造函数 -析构函数 <?php class Student { // 类里的属性.方法和函数的访问权限有 (函数和方法是同一个概念) // private 私有的 protected 受保护的 public 公有的 // 类常量 没有访问权限修饰符 const STUDENT = 'Tom'; // 属性 public $stu_name; // 静态属性 public static $stu_num = 1; // 方法
-
一个完整的ASP.NET 2.0 URL重写方案[翻译]
这篇文章描述了一个完整的 ASP.NET 2.0 URL 重写方案.这个方案使用正则表达式来定义重写规则并解决通过虚拟 URLs 访问页面产生回发事件的一些可能的困难. 为什么要重写 URL ? 将 URL 重写方法应用到你的 ASP.Net 应用程序的两个主要原因是:可用性和可维护性. 可用性 谁都知道,相对于难于辨认的带参数的长的查询路径,用户更喜欢一些短的.简洁的 URL.任何时候,一个容易记住和敲入的路径比添加到收藏夹更有用.其次,当一个浏览器的收藏夹不可用时,记住的地址总比在搜索引擎中
-
Lua教程(六):绑定一个简单的C++类
本文是最后一篇C/C++与Lua交互的教程,在此之后,我们会结合Cocos2D-X来介绍Lua绑定.本文主要介绍如何绑定一个简单的C++类到Lua里面,并且提供Lua的面向对象访问方式. 绑定C++类 定义C++类 首先,我们定义一个Student类,它拥有名字(字符串类型)和年龄(整型),并且提供一些getter和setter,最后还提供了一个print方法.这里有Student类的定义和实现:Student.h和Student.cpp 编写绑定代码 首先,让我们编写在Lua里面创建Stude
-
创建一个ASP通用分页类
从开始学习到使用ASP到现在也写了不少程序了,最令人头痛的是写数据分页,每次都是由于几个变量名或几个参数的不同,因而需要每次都写哪一段冗长而又繁杂的分页代码,代码长了使得程序的可读性变差,容易出差,调试半天也找不出错在哪里,所以慢慢的我开始使用一些网上的提供的分页函数或分页类.的确省事不少,但是通常的函数和类的做法都是就数据显示部分也封装了起来,每次为了达到自己需要的显求效果要去改动函数或者类的本身,所以使用起来也不是怎么方便,自己写的分页改起来已经够复杂了,更不要说别人的了. 所以趁昨天有空自
-
实现一个完整的Node.js RESTful API的示例
前言 这篇文章算是对Building APIs with Node.js这本书的一个总结.用Node.js写接口对我来说是很有用的,比如在项目初始阶段,可以快速的模拟网络请求.正因为它用js写的,跟iOS直接的联系也比其他语言写的后台更加接近. 这本书写的极好,作者编码的思路极其清晰,整本书虽说是用英文写的,但很容易读懂.同时,它完整的构建了RESTful API的一整套逻辑. 我更加喜欢写一些函数响应式的程序,把函数当做数据或参数进行传递对我有着莫大的吸引力. 从程序的搭建,到设计错误捕获机制
-
创建一个完整的ASP.NET Web API项目
Visual Studio为我们提供了专门用于创建ASP.NET Web API应用的项目模板,借助于此项目模板提供的向导,我们可以"一键式"创建一个完整的ASP.NET Web API项目.在项目创建过程中,Visual Studio会自动为我们添加必要的程序集引用和配置,甚至会为我们自动生成相关的代码,总之一句话:这种通过向导生成的项目在被创建之后其本身就是一个可执行的应用. 一.通过VS2013..NET 4.5.1创建一个Web API项目 1.解决方案下面新建项目 2.选择项
-
SQL Server误区30日谈 第20天 破坏日志备份链之后,需要一个完整备份来重新开始日志链
误区 #20:在破坏日志备份链之后,需要一个完整备份来重新开始日志链 错误 事务日志备份会备份自上次事务日志备份以来所有的事务日志(如果从来没有过日志备份的话,那就从上一次完整备份开始).有好几种类型的操作会中断事务日志的连续性,也就是说除非重新开始新的日志链,SQL Server无法再进行日志备份.下面这几种操作都有可能引起日志链断裂: 由完整恢复模式或大容量事务日志恢复模式转为简单恢复模式 从数据库镜像进行恢复 备份日志时指定了NO_LOG 或 WITH TRUNCATE_ONLY(还好在S
-
vuejs手把手教你写一个完整的购物车实例代码
由于我们公司是主营业务是海淘,所以每个项目都是类似淘宝天猫之类的商城,那么购物车就是一个重点开发功能模块.介于之前我都是用jq来写购物车的,这次就用vuejs来写一个购物车.下面我就从全选,数量控制器,运费,商品金额计算等方法来演示一下一个能用在实际场景的购物车是怎么做出来的以及记录一下这次用vuejs踩过的坑. 1.一层数据结构-全选 下面这段代码和vuejs官网里面checkbox绑定很像.不明白的可以直接上vuejs官网看看. <!DOCTYPE html> <html lang=
-
封装的一个asp.net验证码类
第一个反映是验证码的这些属性是否可以设置(也就是说是封装成一个类,然后以暴露公有属性和方法的方式来使用的,还是在直接在一般处理程序中实现了验证码的生成到输出),结果比较可惜,是后者...... 里面的算法感觉挺不错,至少对于我这种对算法几乎是不懂的人来说是这样,于是想到去封装一下她然后无耻地纳入自己的类库中去^^ old原文件如下:点击下载 首先分析一下这份代码中的不足(自己觉得的): 1.面向过程式的编程,如果要修改验证码的属性,例如修改字体的大小.背景颜色等细节的东西,需要去一般处理程序中找
-
很实用的一个完整email发送程序
很实用的一个完整email发送程序,很简单,把下列代码复制到一个空白文本页面,如index.php,运行就行了.具体实例:http://zsvalley.uhome.net/email/index.php. 以下是完整的源代码:(有任何问题请email:zsvalley@cmmail.com) <? if ($ok=='yes'){ // SetCookie("yname", $yname); // SetCookie("yemail&qu
随机推荐
- javascript 获取url参数的正则表达式(用来获取某个参数值)
- go1.8之安装配置具体步骤
- Powershell 获取特定的网页信息的代码
- js使用对象直接量创建对象的代码
- sz.reg转换成reg.bat的批处理
- Java基础教程之Hello World到面向对象
- JS操作COOKIE实现备忘记录的方法
- .NET微信公众号 用户分组管理
- asp分页生成html的程序脚本代码
- 求素数,用vector存储的实现方法
- 用正则获取指定路径文件的名称
- Mysql 5.7 忘记root密码或重置密码的详细方法
- 读取spring配置文件的方法(spring读取资源文件)
- PHP安全下载文件的方法
- Ruby下WebDriver的相关操作指南
- 浅谈JavaScript函数的四种存在形态
- 不用确认即可打印的javascript代码
- 访问php时提示内存位置访问无效的解决办法和思路分析
- C语言数据结构之中缀树转后缀树的实例
- Java正则表达式之split()方法实例详解
其他
- bootstrap html局部刷新页面
- elementui侧边栏伸缩
- r语言lm()函数详解
- Python 实现两个列表里元素对应相乘
- springboot 接口加解密
- vue iview 新增
- maven parent可以不设置版本号
- window server 12域用大部分用户突然锁定的原因
- JAVA简单实现MD5注册登录加密实例
- jq 鼠标经过二级菜单 id控制
- Ubuntu 20.04环境验证opencv正确
- vue.js a标签传参数
- Python 简繁转换
- vue子组件监听父组件字符串值的变化不起作用
- python使用其他方式获取win10cpu温度
- Android studio添加 spinner
- 小程序 scrollview 滚动到底 不穿透父亲组件
- nginx 网址转发带参数
- MySQL模糊查询 提高速度
- 阿里云存储图片设置自定义域名打不开