php函数、类和对象以及类的封装、继承、类的静态方法、静态属性

原文: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::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='');
时间: 2024-08-31 01:32:18

php函数、类和对象以及类的封装、继承、类的静态方法、静态属性的相关文章

php的类和对象(翻译:midiguy)

对象 /**********************************************************翻译:midiguy 翻译错误之处还请各位指出E-Mail:midiguy@263.netQQ:5149927***********************************************************/ 面向对象程序设计的来源得自于人们看待电话.汽车这些物体的想法.很多程序设计者在讨论面向对象程序设计的时候喜欢用"包装"或者"

《OOD启思录》—第2章2.1节类和对象导引

第2章 类和对象:面向对象范型的建材OOD启思录2.1 类和对象导引面向对象范型使用类和对象的概念作为基本建筑材料.应用程序的分析.设计.实现模型一致地使用这些概念.通过现实世界中的例子来解释这些概念是最佳方案.如果有一屋子的人,你问:"给你们所需的全部零件,谁能装配出一只闹钟"?最多有一两个人会举手.但如果你问他们"这个房间里谁能够把闹铃设到早上9点",那么我可以放心地和你打赌,大多数人都会举手.大多数人会使用闹钟,但不会装配闹钟,这难道不荒谬吗?对这个问题,你最

Kotlin学习(四)—— 类和对象,继承,覆盖,抽象类,属性和字段,接口,可见性修饰符,扩展

一.类和对象 1. 类 Kotlin和java的类的声明都是一样的,用class表示,比如 class TestClass { } 如果是空类的话,大括号都可以省了 2.构造函数 一个主构造函数和多个次要函数,主函数在类名后,如 class TestClass { //主函数 class TestClass constructor(firstName: String) { init { print("这里初始化") } } } 如果主构造函数没有任何注解或者可⻅性修饰符,可以省略这个

深入Objective-C Runtime机制(一):类和对象的实现

1.概要      对于Runtime系统,相信大部分iOS开发工程师都有着或多或少的了解.对于Objective-C,Runtime系统是至关重要的,可以说是Runtime系统让Objective-C成为了区分于C语言,C++之外的一门独立开发语言,让OC在拥有了自己的面向对象的特性以及消息发送机制.并且因为其强大的消息发送机制,也让很多人认为Objective-C是一门动态语言(实际上每种语言都具有一定的动态性,只是OC的Runtime更加强大,但它仍比不上Python,Lua等动态语言).

String是类还是对象?

问题描述 String是类还是对象? 解决方案 解决方案二:String是类,通过newString实例化出来的是String类的对象.解决方案三:是类还是对象,类似于是数据类型还是变量,String是类.解决方案四:Stringstr=newString("hello");String是类,str是对象.解决方案五:通过new出来的才是对象···

《Java程序员面试秘笈》—— 面试题5 用自己的语言描述Java中的类和对象

面试题5 用自己的语言描述Java中的类和对象 下列关于对象的哪一种说法是正确的?请选择一个正确的答案. (a)对象是可以对其进行实例化从而得到类的东西. (b)对象是类的实例. (c)对象是一种蓝本,据此可以创建抽象的具体实现. (d)对象是指向属性的引用. (e)对象是一种变量. 考点:该面试题考察求职者对于Java类和对象的理解. 出现频率: [面试题解析] 1.类 在处理复杂事物的时候,用到的一种基本手段就是抽象.抽象的目的就是区别事物之间的本质和不同,面向对象编程(OOP)的实质就是利

Javascript基于对象三大特性(封装性、继承性、多态性)_javascript技巧

Javascript基于对象的三大特征和C++,Java面向对象的三大特征一样,都是封装(encapsulation).继承(inheritance )和多态(polymorphism ).只不过实现的方式不同,其基本概念是差不多的.其实除三大特征之外,还有一个常见的特征叫做抽象(abstract),这也就是我们在一些书上有时候会看到面向对象四大特征的原因了.一.封装性    封装就是把抽象出来的数据和对数据的操作封装在一起,数据被保护在内部,程序的其它部分只有通过被授权的操作(成员方法),才能

PHP类和对象函数实例详解

1. interface_exists.class_exists.method_exists和property_exists:         顾名思义,从以上几个函数的命名便可以猜出几分他们的功能.我想这也是我随着对PHP的深入学习而越来越喜欢这门编程语言的原因了吧.下面先给出他们的原型声明和简短说明,更多的还是直接看例子代码吧. bool interface_exists (string $interface_name [, bool $autoload = true ]) 判断接口是否存在

【C/C++学院】(4)c++开篇/类和对象/命名空间/类型增强/三目运算符/const专题/引用专题/函数增强

1.类和对象 成员函数,成员变量,抽象封装的能力. 求圆的面积: #include <iostream> using namespace std; class circle{ private: double m_r;//成员变量 public: void setR(double r)//成员函数 { m_r = r; } double getR() { return m_r; } double getS() { return 3.14*m_r*m_r; } }; void main() { c