PHP的构造函数,析构函数,(静态)变量,方法

1.php的类的结构以及调用与java的方法很是不同;

2.php使用->调用方法和变量的,用::调用静态方法和变量;

3.php不仅有一个构造函数,还有有一个析构函数。子类的这两种函数可被parent::来进行调用保留。


一、父类 myClass.php

<?php

header("Content-type:text/html;charset=utf-8");

class myClass
{
    public $n = "这是public对象";
    private $n2 = "这是private对象";
    protected $n3 = "这是protected对象";

    private $myCt01;
    private $myCt02;
    private $myCt03;

    static public $m = "我是静态变量";

    //构造函数一个参数
//    public function __construct($myCt01)
//    {
//        $this->myCt01 = $myCt01;
//    }
    //构造函数,是程序开始时就执行。
    public function __construct($myCt01, $myCt02, $myCt03)
    {
        $this->myCt01 = $myCt01;
        $this->myCt02 = $myCt02;
        $this->myCt03 = $myCt03;
    }

//析构函数,程序结束时执行
    public function __destruct()
    {
        // TODO: Implement __destruct() method.
        echo "我是析构函数";
    }

//打印值
    public function printMyCt01()
    {
        echo $this->myCt01;
        echo $this->myCt02;
        echo $this->myCt03;
    }

    //无参数,无返回值
    public function getMyClass()
    {
        echo "这是我的类getMyClass()方法" . "<br>";
        echo $this->n2;
        echo $this->n3;
    }

    //具有返回值,无参数
    public function getMyNum()
    {
        return "我是返回值";
    }

    //有参数有返回值
    public function getMyName($n)
    {
        $n = $n . "大海" . "<br>";
        return $n;
    }

    //有参数,参数具有初始化,如果被传入则用传入的,没传入则不用;无返回值
    public function getAction($a, $b, $c = "我是初始化")
    {
        echo $a . "<br>";
        echo $b . "<br>";
        echo $c . "<br>";
    }

    //静态方法
    static public function getSc()
    {
        echo "我是静态方法" . "<br>";
    }
}


构造参数,必须传参
//$myCs = new myClass("汪洋大盗", "汪洋大盗", "汪洋大盗");
//$myCs->printMyCt01();
//$myCs->getMyClass();
//echo $myCs->n;

具有返回值,无参数
//echo "<br>" . $myCs->getMyNum();
//注意下边的输出方式
//$r = $myCs->getMyNum();
//echo $r;

有参数有返回值
//echo $myCs->getMyName("汪洋");

有参数,参数具有初始化
//$myCs->getAction("123", "456");
//$myCs->getAction("123", "456", "789");

//静态的情况下
静态方法
//myClass::getSc();
//$myCs->getSc();

静态变量
//echo myClass::$m;
?>


三、子类文件myChild.php

<?php
/**
 * Created by PhpStorm.
 * User: 洋   汪
 * Date: 2016/7/16
 * Time: 17:59
 */
header("Content-type:text/html;charset=utf-8");
include "myClass.php";

class myChild extends myClass
{

    public function __construct()
    {

//        parent::__construct("", $myCt02, $myCt03);
//可以保留父类的构造函数,也可以不保留。
        echo "我是儿子的构造函数" . "<br>";
    }

    public function __destruct()
    {
        echo "我是儿子的析构函数" . "<br>";
//        parent::__destruct();
    }
}

//只能得到父类的public的方法,变量;静态方法,静态变量。
$mc = new myChild();
echo $mc::getSc();
echo $mc::$m;
?>






相关推荐
©️2020 CSDN 皮肤主题: 技术黑板 设计师:CSDN官方博客 返回首页