程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> php函數、類和對象以及類的封裝、繼承、類的靜態方法、靜態屬性,php靜態

php函數、類和對象以及類的封裝、繼承、類的靜態方法、靜態屬性,php靜態

編輯:關於PHP編程

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='');

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved