>  기사  >  백엔드 개발  >  PHP privatea 권한 제어

PHP privatea 권한 제어

不言
不言원래의
2018-04-26 10:55:471739검색

이 기사에서는 특정 참조 가치가 있는 PHP의 개인 권한 제어를 소개합니다. 이제 모든 사람과 공유합니다. 도움이 필요한 친구들이 참조할 수 있습니다

// 개인 권한 제어

// === 코드 1부 == =

class Human {
    public $mood = ''; // 心情,公有
    private $money = 1000; // 钱,私有

    public function showMoney() {
        return $this->money;
    }    private function secret() {
        echo '我小时候偷吃过一块肉';
    }    public function tellMe() {
        $this->secret();
    }
}
$lisi = new Human();
$lisi->mood = 'happy';
echo $lisi->mood,&#39;<br >&#39;;
//钱定义为私有属性,在类Human{}外面调用,调用失败
//echo $lisi->money;
//$lisi-money = 500;
echo $lisi->showMoney();
echo &#39;<br >&#39;;/*
showMoney是公共的,在此行可以调用.
showMoney中的 return $this->money;
这一句运行的环境是在 类{}的内部,因此有权限访问 money属性
*///$lisi->secret(); //报错$lisi->tellMe(); 
// 可以调用,因为在通过函数在类内调用的echo &#39;<hr >&#39;;

/*
요약: 비공개 권한 제어

는 클래스 {} 내에서만 호출할 수 있습니다.
{} 외부에서는 조정할 수 없습니다.
*/



// 권한 제어 버그

// ===코드 2부===

class Human2 {
    private $money = 1000;    public function getMoney($people) {
        return $people->money;
    }    public function setMoney($people) {
        $people->money -= 500;
    }
}$zhangsan = new Human2();$lisi = new Human2();//echo $lisi->money; 
//报错// 让李四去打探张三的钱echo $lisi->getMoney($zhangsan),&#39;<br >&#39;;
 //1000// 让李四去改变张三的钱$lisi->setMoney($zhangsan); 
 //减500echo $lisi->getMoney($zhangsan),&#39;<br >&#39;; 
 //剩500print_r($zhangsan);

/*
이상한 점은
zhangsan의 돈이 zhangsan이 getMoney 및 setMoney를 호출하면 영향을 받아야 한다는 것입니다.

하지만 개인 권한 제어에 대해 이야기할 때 원칙은 일관됩니다.
That is:
getMoney()를 호출하는 public은
getMoney에 대한 권한이 있으며 {} 클래스에 속하며 사유 재산 화폐를 읽을 권한이 있습니다.

public이라고 불리는 setMoney()에는
setMoney 및

setMoney에 대한 권한이 있습니다. {} 클래스에 있습니다. zhangsan의 개인 속성인 Money

*/


를 수정할 권한이 있습니다. 관련 권장 사항:

PHP 이 바인딩

🎜

위 내용은 PHP privatea 권한 제어의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
이전 기사:PHP 이 바인딩다음 기사:PHP 이 바인딩