Explication détaillée du concept d'empaquetage PHP

小云云
Libérer: 2023-03-22 21:08:01
original
4903 Les gens l'ont consulté

Cet article partage principalement avec vous une explication détaillée du concept de packaging PHP. Il est principalement partagé avec vous sous forme de texte et de code. J'espère qu'il pourra vous aider.

/* 面向对象三大特征: 封装 继承 多态 */
Copier après la connexion
Copier après la connexion

// ===Code partie 1===

class Human {
    public $money = 1000;
}$lisi = new Human();echo $lisi->money,&#39;<br >&#39;; //1000// 改变一下money$lisi->money = 500;echo $lisi->money,&#39;<br >&#39;; //500
Copier après la connexion
Copier après la connexion
/* 然而在现实中,别人把你的钱减少了,显然是不合理的 所以我们要把钱设为私有的 */
Copier après la connexion

// ===Code partie 2===

class Human {
    private $money = 1000;    public function showMoney() {
        return $this->money * 0.8;
    }
}$lisi = new Human();/*
此时我们再调用或调用更改money时就会失败,
因为我们把money“封起来”了
//echo $lisi->money,&#39;<br >&#39;; //1000

但是,我们不能光封起来,还要能够使用才行
*//*
我们不能直接翻别人口袋有多少钱
但可以问别人,但是别人说的不一定是真的
*/echo $lisi->showMoney(); //800
Copier après la connexion
Copier après la connexion
/* 把某些重要属性 封装起来 然后通过一个开放的接口来操作. 这就实现对属性的封装. */
Copier après la connexion
Copier après la connexion

// ===Code partie 3===

// 封装在方法上的体现class Human {
    private $money = 1000;    private $bank = 2000;    private function getBank($num) {
        $this->bank -= $num;        return $num;
    }    public function send($much) {
        if($much <= 1000) {            $this->money -= $much;            return $much;
        } else if($much <= $this->money + $this->bank) {            $num = $much - $this->money; 
            //计算从银行取了多少钱
            $this->money += $this->getBank($num);            //从银行取出钱,加到现金里

            $this->money -= $much;            //再把钱借给朋友
            return $much;
        } else { 
            $this->money -= $much;            return $much;      
        //最后若实在借不了这么多的话返回false
            //return false;
        }
    }    public function showMoney() {
        return $this->money;
    }    public function showBank() {
        return $this->bank;
    }
}$lisi = new Human();$m = $lisi->send(300);if($m) {    echo &#39;借了&#39;,$m,&#39;元<br >&#39;;    echo &#39;还剩下&#39;,$lisi->showMoney(),&#39;元<br >&#39;;
}// 再借2000元$m = $lisi->send(2000);if($m) {    echo &#39;借了&#39;,$m,&#39;元<br >&#39;;    echo &#39;还剩下&#39;,$lisi->showMoney(),&#39;元<br >&#39;;    echo &#39;银行还有&#39;,$lisi->showBank(),&#39;元<br >&#39;;
}
Copier après la connexion
Copier après la connexion
/* 对于一个对象,对外界开放一个接口, 调用接口时,内部进行的操作,不需要让外界知道. 隐藏了内部的一些实现细节.
这是对方法的封装. */
Copier après la connexion
Copier après la connexion
/* 面向对象三大特征: 封装 继承 多态 */
Copier après la connexion
Copier après la connexion

// ===Code partie 1== =

class Human {
    public $money = 1000;
}$lisi = new Human();echo $lisi->money,&#39;<br >&#39;; //1000// 改变一下money$lisi->money = 500;echo $lisi->money,&#39;<br >&#39;; //500
Copier après la connexion
Copier après la connexion
/* 
然而在现实中,别人把你的钱减少了,显然是不合理的 
所以我们要把钱设为私有的 
*/
Copier après la connexion



// ===Code Partie 2===

class Human {
    private $money = 1000;    public function showMoney() {
        return $this->money * 0.8;
    }
}$lisi = new Human();/*
此时我们再调用或调用更改money时就会失败,
因为我们把money“封起来”了
//echo $lisi->money,&#39;<br >&#39;; //1000

但是,我们不能光封起来,还要能够使用才行
*//*
我们不能直接翻别人口袋有多少钱
但可以问别人,但是别人说的不一定是真的
*/echo $lisi->showMoney(); //800
Copier après la connexion
Copier après la connexion
/* 把某些重要属性 封装起来 然后通过一个开放的接口来操作. 这就实现对属性的封装. */
Copier après la connexion
Copier après la connexion

// === Partie de code 3===

// 封装在方法上的体现class Human {
    private $money = 1000;    private $bank = 2000;    private function getBank($num) {
        $this->bank -= $num;        return $num;
    }    public function send($much) {
        if($much <= 1000) {            $this->money -= $much;            return $much;
        } else if($much <= $this->money + $this->bank) {            $num = $much - $this->money; 
            //计算从银行取了多少钱
            $this->money += $this->getBank($num);            //从银行取出钱,加到现金里

            $this->money -= $much;            //再把钱借给朋友
            return $much;
        } else { 
            $this->money -= $much;            return $much;      
        //最后若实在借不了这么多的话返回false
            //return false;
        }
    }    public function showMoney() {
        return $this->money;
    }    public function showBank() {
        return $this->bank;
    }
}$lisi = new Human();$m = $lisi->send(300);if($m) {    echo &#39;借了&#39;,$m,&#39;元<br >&#39;;    echo &#39;还剩下&#39;,$lisi->showMoney(),&#39;元<br >&#39;;
}// 再借2000元$m = $lisi->send(2000);if($m) {    echo &#39;借了&#39;,$m,&#39;元<br >&#39;;    echo &#39;还剩下&#39;,$lisi->showMoney(),&#39;元<br >&#39;;    echo &#39;银行还有&#39;,$lisi->showBank(),&#39;元<br >&#39;;
}
Copier après la connexion
Copier après la connexion
/* 对于一个对象,对外界开放一个接口, 调用接口时,内部进行的操作,不需要让外界知道. 隐藏了内部的一些实现细节.
这是对方法的封装. */
Copier après la connexion
Copier après la connexion

Recommandations associées :

Introduction à l'héritage, au polymorphisme et à l'encapsulation orientés objet PHP

Explication détaillée de la classe d'encapsulation de gestion des erreurs PHP

Partage du code d'implémentation de la classe d'encapsulation des données de communication PHP

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal