thinkphp5 控制器下public,protected,private三者的区别
public:公共 protected:继承 private:私有
请看示例
<?php
namespace app\index\controller;
use think\Controller;
//Test父类
class TestFather extends Controller
{
public function aaa(){
return "这是TEST下public控制器";
}
protected function bbb(){
return "这是TEST下protected控制器";
}
private function ccc(){
return "这是TEST下private控制器";
}
}
<?php
namespace app\index\controller;
//Test子类
class TestSon extends TestFather
{
public function ddd(){
return $this->aaa();
}
public function eee(){
return $this->bbb();
}
public function fff(){
return $this->ccc();
}
}
<?php
namespace app\index\controller;
use think\Controller;
//毫不相干的Test类
class Test extends Controller
{
public function xxx(){
return $this->redirect('TestFather/aaa');
}
public function yyy(){
return $this->redirect('TestFather/bbb');
}
public function zzz(){
return $this->redirect('TestFather/ccc');
}
}
访问TestSon下的ddd函数,页面效果如下:

访问TestSon下的eee函数,页面效果如下:

访问TestSon下的fff函数,页面效果如下:

访问Test下的xxx函数,页面重定向到TestFatcher下的aaa

访问Test下的yyy函数,页面重定向到TestFatcher下的bbb,显示方法不存在

访问Test下的zzz函数,页面重定向到TestFatcher下的ccc,显示方法不存在

通过上面的测试,可以得出结论
public定义的函数能被任何类获取
protected定义的函数只能被继承的子类获取
private定义的函数只能本类获取