php单独页面权限控制,PHP的privata权限控制

这篇文章介绍的内容是关于PHP的privata权限控制 ,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下

// private权限控制

// ===代码部分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,'
';

//钱定义为私有属性,在类Human{}外面调用,调用失败

//echo $lisi->money;

//$lisi-money = 500;

echo $lisi->showMoney();

echo '
';/*

showMoney是公共的,在此行可以调用.

showMoney中的 return $this->money;

这一句运行的环境是在 类{}的内部,因此有权限访问 money属性

*///$lisi->secret(); //报错$lisi->tellMe();

// 可以调用,因为在通过函数在类内调用的echo '


';

/*

总结:private权限控制

只能在类{}内调用.

走出了{},调不动了.

*/

// 权限控制的bug

// ===代码部分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),'
';

//1000// 让李四去改变张三的钱$lisi->setMoney($zhangsan);

//减500echo $lisi->getMoney($zhangsan),'
';

//剩500print_r($zhangsan);

/*

奇怪之处在于,

zhangsan的钱,应该有zhangsan来调用getMoney和setMoney才能影响.

但是与我们讲private权限控制时的原则是符合的:

即:

调用的getMoney() public 有权

getMoney又在类{}内,有权读取私有属性money

调用的setMoney() public 有权

setMoney又在类{}内,有权修改zhangsan的私有属性money

*/

相关推荐:

PHP this绑定

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值