Fatal error: Access level to xxx must be protected 错误解决 - php应用 - PHP粉丝网
当前位置:首页 > PHP教程 > php应用 > 列表

Fatal error: Access level to xxx must be protected 错误解决

发布:smiling 来源: PHP粉丝网  添加日期:2016-08-25 13:41:04 浏览: 评论:0 

php出现Fatal error: Access level to xxx must be protected 错误我们可如何来解决呢,对于这个问题下面我们就一起来看看它的解决办法.

今天程序突然出现这样的报错

Fatal error: Access level to xxx must be protected (as in class xxx) or weaker in xxx.php on line

原因是子类中定义了与父类一样的方法名

子类:

  1. private function return_json($message,$result='true') { 
  2.         $data = array(); 
  3.         $data['result'] = $result
  4.         $data['message'] = $message
  5.         self::echo_json($data); 
  6. private function echo_json($data) { 
  7.     if (strtoupper(CHARSET) == 'GBK'){ 
  8.         $data = Language::getUTF8($data);//网站GBK使用编码时,转换为UTF-8,防止json输出汉字问题 
  9.     } 
  10.     echo json_encode($data); 

父类:

  1. /** 
  2.  * 返回json状态 
  3.  */ 
  4. protected function return_json($message,$result='true') { 
  5.     $data = array(); 
  6.     $data['result'] = $result
  7.     $data['message'] = $message
  8.     self::echo_json($data); 
  9. //phpfensi.com 
  10. protected function echo_json($data) { 
  11.     if (strtoupper(CHARSET) == 'GBK'){ 
  12.         $data = Language::getUTF8($data);//网站GBK使用编码时,转换为UTF-8,防止json输出汉字问题 
  13.     } 
  14.     echo json_encode($data);die

解决办法:

把子类中的private 改成 protected,或者避免方法重名。这里例子中很显然是相同的方法进行了重复的定义,子类删除这两个方法即可。

Tags: Fatal error Access protected

分享到: