您的位置:首页 > 编程语言 > PHP开发

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

2016-08-07 11:00 309 查看
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;
?>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息