首页 > 开发 > PHP > 正文

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

2024-05-04 22:00:37
字体:
来源:转载
供稿:网友

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. //Vevb.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,或者避免方法重名。这里例子中很显然是相同的方法进行了重复的定义,子类删除这两个方法即可。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表