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

大兔子大兔子 提交于 2020-03-21 07:38:20

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='');
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!