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::eat

4、类的静态方法和静态属性

<?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函数、类和对象以及类的封装、继承、类的静态方法、静态属性的更多相关文章

  1. 类和对象的创建过程(元类,__new__,__init__,__call__)

    一. type() 1.创建类的两种方式 方式一 class MyClass(object): def func(self,name): print(name) myc = MyClass() pri ...

  2. 【Java学习】类、对象、实例—类是对象的抽象,对象是类的实例

    类.对象.实例的关系是什么,如果不能很好的理解什么是类什么是对象就无法讲清楚, 类:某种事物与另一种事物具有相似性,比如哈士奇和泰迪,我们发现他们有一些相似的特性和行为,在生物学上,他们都属于“狗”, ...

  3. 一.OC基础之:1,OC语言的前世今生 ,2,OC语言入门,3,OC语言与C的差异,4,面向对象,5,类和对象的抽象关系,6,类的代码创建,7,类的成员组成及访问

    1,OC语言的前世今生 , 一, 在20世纪80年代早期,布莱德.麦克(Brad Cox)设计了OC语言,它在C语言的基础上增加了一层,这意味着对C进行了扩展,从而创造出一门新的程序设计语言,支持对象 ...

  4. 适用于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通用)>,现在重新整理一 ...

  5. 《Java从入门到失业》第四章:类和对象(4.6):类路径

    4.6类路径 4.6.1什么是类路径 前面我们讨论过包,知道字节码文件最终都会被放到和包名相匹配的树状结构子目录中.例如上一节的例子: 其实类还有一种存放方式,就是可以归档到一个jar文件中,jar文 ...

  6. 编写一个Shape类,具有属性:周长和面积; 定义其子类三角形和矩形,分别具有求周长的方法。 定义主类E,在其main方法中创建三角形和矩形类的对象, 并赋给Shape类的对象a、b,使用对象a、b来测试其特性。

    package shape; public class Shape { //定义成员变量 private double zhouchang; private double mianji; public ...

  7. 30.编写一个Shape类,具有属性:周长和面积; 定义其子类三角形和矩形,分别具有求周长的方法。 定义主类E,在其main方法中创建三角形和矩形类的对象, 并赋给Shape类的对象a、b,使用对象a、b来测试其特性。

    package zuoye8; public abstract class Shape { private double zhouchang ; private double mianji ; pub ...

  8. Python10/22--面向对象编程/类与对象/init函数

    类: 语法: class关键字 类名# 类名规范 大写开头 驼峰命名法class SHOldboyStudent: # 描述该类对象的特征 school = "上海Oldboy" ...

  9. Java编程里的类和对象

    像我们搞计算机这块的,都知道这么一件事,当前的计算机编程语言主要分为两大块,一为面向过程,二为面向对象.Java就是一门纯面向对象的语言.学习了一个月左右的Java,在下对于Java当中的类和对象有了 ...

  10. day24:面向对象设计与面向对象编程、类和对象

    一.三大编程范式: 面向过程: 面向函数: 面向对象: 二.程序的进化论: 1.编程最开始就是无组织无结构,从简单控制流中按步写指令 2.从上述的指令中提取重复的代码块或逻辑,组织到一起(比方说,你定 ...

随机推荐

  1. Java中通过递归调用删除文件夹下所有文件

    摘自 : http://blog.sina.com.cn/s/blog_79333b2c0100xiu4.html import java.io.File; public class FileTest ...

  2. 数据链路层-点对点协议PPP

    在通信质量较差的年代,在数据链路层使用可靠传输协议曾是一个好的办法.因此,能实现可靠传输的高级数据链路控制HDLC(High-Level Data Link Control)就称为当时比较流行的数据链 ...

  3. 判断div是否隐藏

    <script type="text/javascript" src="../js/jquery-1.7.2.min.js"></script ...

  4. django的model对象转化成dict

    今天发现一个掉渣天的方法,Django的forms包里面有一个方法:model_to_dict(),它可以将一个model对象转化成dict. In [1]: from apps.dormitory. ...

  5. CSS3----background:-webkit-gradient()渐变效果

    input[type="button"], input[type="button"]:visited { background: -webkit-gradien ...

  6. IPTABLES封闭和开放端口

    这个是个细心活儿,如果只开放特定端口,则在每一条规则里都要加上相应的端口. 任何一条不配DPORT,都有可能放行了其它端口. -A INPUT -p tcp -m tcp --dport 80 -m ...

  7. Codeforces 414B Mashmokh and ACM

    http://codeforces.com/problemset/problem/414/B 题目大意: 题意:一个序列B1,B2...Bl如果是好的,必须满足Bi | Bi + 1(a | b 代表 ...

  8. BZOJ 2298 problem a(区间DP)

    题意:一次考试共有n个人参加,第i个人说:“有ai个人分数比我高,bi个人分数比我低.”问最少有几个人没有说真话(可能有相同的分数) 思路:考虑最多有多少人说真,那么答案就是n-max. ai个人分数 ...

  9. 25045操作标准子程序集41.C

    /* ;程 序 最 后 修 改 时 间 0-4-3 23:43 ;软 件 标 题:25045操作标准子程序集41 ;软 件 说 明:25045 I2C 串行EEPROM 驱动 ;___________ ...

  10. Keil C51里关于堆栈指针的处理

    Keil C是非常优秀的C51编译器,可能是最好的C51编译器,提供各种优化模式,对变量的优化和地址安排做得非常好.这是用C语言写代码的好处之一,如果用汇编写,得费一大番功夫给各个变量安排内存物理地址 ...