php函数、类和对象以及类的封装、继承、类的静态方法、静态属性
1、函数
php内置函数可以直接使用,如果没有安装php扩展即可
自定义函数
//函数function 函数名 function dump($var = null){ //支出默认参数值 echo ‘<pre/>’; var_dump($var); }2、类(class)和对象( new Obj)
<?php
//定义一个人的类,现在还不是对象 class Person
{
//私有属性private $eye = '大眼睛';
private $mouth = '小嘴巴';
private $leg = '大长腿'; //构造方法 new 对象的时候自定调用
public function __construct()
{
echo __CLASS__;
}
public function run()
{
echo $this->leg;
}
//学习 会用到 腿(走路)、眼睛(看书)、嘴(念书)
public function study()
{
echo $this->leg, $this->eye, $this->mouth; } } //使用类 new以后就变成了对象 $person = new Person(); //输出 Person
$person -> run(); //输出 大长腿
$person -> study(); //输出 大长腿 大眼睛 小嘴唇3、类的封装(public, protected, private)和继承(extends)
//类的继承
class A
{
public function help()
{
echo __METHOD__;
}
//声明一个吃的方法 私有的
private function eat()
{
echo __METHOD__;
} } //子类可以继承父类所有的公共方法和属性、受保护的方法和属性,私有方法除外
//如果想使用,重写即可
class B extends A
{
public function doSomething()
{
$this -> help(); //继承了父类的方法 前提是声明为public
echo '<hr/>';
$this -> eat(); //因为吃是私有的,子类不能使用, 这里在子类中写了一个eat方法. }
//子类的吃
public function eat()
{
echo __METHOD__;
} }
$b = new B;
$b->doSomething();//输出结果A::help
B::eat4、类的静态方法和静态属性
<?php //定义一个Url 相关的类
class Url
{
public static function createUrl($arr = [])
{
echo __METHOD__;
}
public static function redirect($url = '')
{
echo __METHOD__;
}
public static function getCurrentUrl()
{
echo __METHOD__;
}
}
//把方法声明成静态方法,不需要每次都实例化(new)对象,操作方便,节省内存,效率更高
echo Url::createUrl($var='');
echo Url::redirect($url='');
echo Url::getCurrentUrl();5、类的静态属性
<?php //定义一个Url 相关的类
class Url
{
//声明为类常量
const URL = 'http://www.baidu.com'; //从5.3以后可以直接在类外部使用 const
//声明为静态变量
public static $var = 'it is very good';
public static function createUrl($arr = [])
{
echo self::URL;
echo '<br/>';
echo self::$var;
echo '<br/>';
echo __METHOD__;
}
public static function redirect($url = '')
{
echo __METHOD__;
}
public static function getCurrentUrl()
{
echo __METHOD__;
}
}
//把方法声明成静态方法,不需要每次都实例化(new)对象,操作方便,节省内存,效率更高
echo Url::createUrl($var='');
php函数、类和对象以及类的封装、继承、类的静态方法、静态属性的更多相关文章
- 类和对象的创建过程(元类,__new__,__init__,__call__)
一. type() 1.创建类的两种方式 方式一 class MyClass(object): def func(self,name): print(name) myc = MyClass() pri ...
- 【Java学习】类、对象、实例—类是对象的抽象,对象是类的实例
类.对象.实例的关系是什么,如果不能很好的理解什么是类什么是对象就无法讲清楚, 类:某种事物与另一种事物具有相似性,比如哈士奇和泰迪,我们发现他们有一些相似的特性和行为,在生物学上,他们都属于“狗”, ...
- 一.OC基础之:1,OC语言的前世今生 ,2,OC语言入门,3,OC语言与C的差异,4,面向对象,5,类和对象的抽象关系,6,类的代码创建,7,类的成员组成及访问
1,OC语言的前世今生 , 一, 在20世纪80年代早期,布莱德.麦克(Brad Cox)设计了OC语言,它在C语言的基础上增加了一层,这意味着对C进行了扩展,从而创造出一门新的程序设计语言,支持对象 ...
- 适用于app.config与web.config的ConfigUtil读写工具类 基于MongoDb官方C#驱动封装MongoDbCsharpHelper类(CRUD类) 基于ASP.NET WEB API实现分布式数据访问中间层(提供对数据库的CRUD) C# 实现AOP 的几种常见方式
适用于app.config与web.config的ConfigUtil读写工具类 之前文章:<两种读写配置文件的方案(app.config与web.config通用)>,现在重新整理一 ...
- 《Java从入门到失业》第四章:类和对象(4.6):类路径
4.6类路径 4.6.1什么是类路径 前面我们讨论过包,知道字节码文件最终都会被放到和包名相匹配的树状结构子目录中.例如上一节的例子: 其实类还有一种存放方式,就是可以归档到一个jar文件中,jar文 ...
- 编写一个Shape类,具有属性:周长和面积; 定义其子类三角形和矩形,分别具有求周长的方法。 定义主类E,在其main方法中创建三角形和矩形类的对象, 并赋给Shape类的对象a、b,使用对象a、b来测试其特性。
package shape; public class Shape { //定义成员变量 private double zhouchang; private double mianji; public ...
- 30.编写一个Shape类,具有属性:周长和面积; 定义其子类三角形和矩形,分别具有求周长的方法。 定义主类E,在其main方法中创建三角形和矩形类的对象, 并赋给Shape类的对象a、b,使用对象a、b来测试其特性。
package zuoye8; public abstract class Shape { private double zhouchang ; private double mianji ; pub ...
- Python10/22--面向对象编程/类与对象/init函数
类: 语法: class关键字 类名# 类名规范 大写开头 驼峰命名法class SHOldboyStudent: # 描述该类对象的特征 school = "上海Oldboy" ...
- Java编程里的类和对象
像我们搞计算机这块的,都知道这么一件事,当前的计算机编程语言主要分为两大块,一为面向过程,二为面向对象.Java就是一门纯面向对象的语言.学习了一个月左右的Java,在下对于Java当中的类和对象有了 ...
- day24:面向对象设计与面向对象编程、类和对象
一.三大编程范式: 面向过程: 面向函数: 面向对象: 二.程序的进化论: 1.编程最开始就是无组织无结构,从简单控制流中按步写指令 2.从上述的指令中提取重复的代码块或逻辑,组织到一起(比方说,你定 ...
随机推荐
- linux下查找文件和文件内容
find /xxx -name "*" | xargs grep "某内容" /xxx表示路径,"*"表示在含有某关键字名字下的文件中查找, ...
- Nutch+Hadoop集群搭建
转载自:http://www.open-open.com/lib/view/open1328670771405.html 1.Apache Nutch Apache Nutch是一个用于网络搜索 ...
- Python之路第二天,基础(2)-基本数据类型
一.Python数据类型 数 在Python中有4种类型的数,整数,长整数,浮点数和复数. 2是一个整数的例子 长整数不过是大一点的整数 3.23和52.3E是浮点数的例子.E标记表示10的幂.52. ...
- JS 多种变量定义
对象直接量创建一个对象: var obj = {x:[1,2],y:23}; 代码跟下面是一样的. var obj=new Object(); obj.x=new Array(1,2); obj. ...
- Django的 select_related 和 prefetch_related 函数对 QuerySet 查询的优化(二)
3. prefetch_related() 对于多对多字段(ManyToManyField)和一对多字段,可以使用prefetch_related()来进行优化.或许你会说,没有一个叫OneToMan ...
- AFNetworking 官方文档
AFNetworking Version Minimum iOS Target Minimum OS X Target Notes 2.x iOS 6 OS X 10.8 Xcode 5 is req ...
- 开心菜鸟系列学习笔记--------初探Nodejs(了解篇)
一Node.js开始学习了! 1) 输出hellow worlds a.建一个js文件 hello.js 写 console.info('hellow world !!!'); 进入终 ...
- mybatis常用操作
一.增 1.1 单条 <insert id="addUser" parameterType="com.xxx.model.UserInfo" useGen ...
- UESTC_方老师和农场 2015 UESTC Training for Graph Theory<Problem L>
L - 方老师和农场 Time Limit: 3000/1000MS (Java/Others) Memory Limit: 65535/65535KB (Java/Others) Submi ...
- Hdu2425-Hiking Trip(优先队列搜索)
Hiking in the mountains is seldom an easy task for most people, as it is extremely easy to get lost ...