이 기사에서는 특정 참조 가치가 있는 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,'<br >'; //钱定义为私有属性,在类Human{}外面调用,调用失败 //echo $lisi->money; //$lisi-money = 500; echo $lisi->showMoney(); echo '<br >';/* showMoney是公共的,在此行可以调用. showMoney中的 return $this->money; 这一句运行的环境是在 类{}的内部,因此有权限访问 money属性 *///$lisi->secret(); //报错$lisi->tellMe(); // 可以调用,因为在通过函数在类内调用的echo '<hr >';
/*
요약: 비공개 권한 제어
는 클래스 {} 내에서만 호출할 수 있습니다.
{} 외부에서는 조정할 수 없습니다.
*/
// 권한 제어 버그
// ===코드 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),'<br >'; //1000// 让李四去改变张三的钱$lisi->setMoney($zhangsan); //减500echo $lisi->getMoney($zhangsan),'<br >'; //剩500print_r($zhangsan);
/*
이상한 점은
zhangsan의 돈이 zhangsan이 getMoney 및 setMoney를 호출하면 영향을 받아야 한다는 것입니다.
하지만 개인 권한 제어에 대해 이야기할 때 원칙은 일관됩니다.
That is:
getMoney()를 호출하는 public은
getMoney에 대한 권한이 있으며 {} 클래스에 속하며 사유 재산 화폐를 읽을 권한이 있습니다.
public이라고 불리는 setMoney()에는
setMoney 및
를 수정할 권한이 있습니다. 관련 권장 사항:
위 내용은 PHP privatea 권한 제어의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!