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

简介: 原文:php函数、类和对象以及类的封装、继承、类的静态方法、静态属性 1、函数     php内置函数可以直接使用,如果没有安装php扩展即可     自定义函数 //函数function 函数名 function dump($var = null...
原文: 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='');
目录
相关文章
|
2月前
|
Java 程序员 PHP
PHP对象和类
PHP对象和类
21 0
原生php实现列表接口+分页接口+排序接口组合使用+包括测试数据(不加任何封装)
原生php实现列表接口+分页接口+排序接口组合使用+包括测试数据(不加任何封装)
原生php实现列表接口+分页接口+排序接口组合使用+包括测试数据(不加任何封装)
|
5月前
|
JSON PHP 数据格式
PHP curl方法封装
PHP curl方法封装
31 0
|
5月前
|
NoSQL PHP Redis
PHP Redis 封装
PHP Redis 封装
18 0
|
5月前
|
Shell PHP Windows
PHP代码审计(四)PHP文件操作函数(2)
改变文件所有者。如果成功则返回 TRUE,如果失败则返回 FALSE。 语法:chown(file,owner)
38 0
|
2天前
|
PHP
【PHP开发专栏】PHP类的继承与多态实现
【4月更文挑战第29天】本文探讨了PHP中的面向对象编程,重点是类的继承和多态。继承允许子类继承父类属性和方法,子类可添加或重写以满足需求。PHP使用`extends`关键字实现继承,保持封装性和继承性。多态则通过重写方法实现,不同对象对同一消息响应不同。接口实现多态,保证对象调用接口定义的方法。此外,文章还提及抽象类、最终类、静态属性和方法等高级特性,增强类的灵活性。
|
3天前
|
运维 JavaScript Serverless
Serverless 应用引擎产品使用之在阿里函数计算中,Php环境,配置取消禁止函数exec如何解决
阿里云Serverless 应用引擎(SAE)提供了完整的微服务应用生命周期管理能力,包括应用部署、服务治理、开发运维、资源管理等功能,并通过扩展功能支持多环境管理、API Gateway、事件驱动等高级应用场景,帮助企业快速构建、部署、运维和扩展微服务架构,实现Serverless化的应用部署与运维模式。以下是对SAE产品使用合集的概述,包括应用管理、服务治理、开发运维、资源管理等方面。
17 4
|
12天前
|
PHP
PHP面向对象编程精要:接口、抽象类和继承
PHP面向对象编程涉及接口、抽象类和继承。接口定义了类必须实现的方法,抽象类包含抽象方法,不可实例化,而继承允许子类扩展父类属性和行为。通过案例展示了如何使用interface、abstract和extends关键字。这些概念增强了代码的灵活性、可维护性和可扩展性。
13 1