热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

phpdeclarationof,PHP方法重写,参数不同,报错:Declaration

前言php方法重写,参数不同,报错:Declarationofshouldbecompatiblewiththat本人laravel报错提

前言

php 方法重写,参数不同,报错: Declaration of should be compatible with that

本人laravel报错提示

01c6ab485b6cae96736784f4bd626673.png

这里是

ErrorException: Declaration of Module\Article\Controller\Mobile\ListController::tagsVideo($type, $tagsStr) should be compatible with Module\Article\Controller\Web\ListController::tagsVideo($type, $tagsStr, $page = NULL)

因为我这里是继承的关系,这是手机端的控制器继承PC控制器。

fbb910aba3b8885d38b7df351292a659.png

这边 一个方法 tagsVideo() 是被重写的方法,但是一直报错,查询了一下,原来是 php 继承 重写 函数,则参数不一致问题。

// MOBILE

/**

* 视频标签内容页 function

*

* @param [str] $type

* @param [str] $tagsStr

* @param [int] $page

* @return void

* @author bobo

* @date 2019-12-18

*/

public function tagsVideo($type, $tagsStr,$page=null)

{

$tags = $this->parseTags($tagsStr);

$count = 10;

// 加上 $page

// 读取缓存版

$articles = $this->paging($this->relationsCache('tagsVideo',$tags, $count*10, Article::CATEGORY_VIDEO), $count, $page);

// $articles = $this->paging($this->relations($tags, $count*10, Article::CATEGORY_VIDEO), $count, $page);

// select * from a where id = 5 limit

$urlPattern = $this->linkFactory->videoTag($type, $tags);

return $this->render("articles", $urlPattern, [

"tagName" => $tagsStr,

"articles" => $articles,

"matchType" => $type,

"tdk" => [

"topic" => $this->findTdkTags($tagsStr),

]

]);

}

//PC

public function tagsVideo($type, $tagsStr,$page=null)

{

$tags = $this->parseTags($tagsStr);

$count = 10;

// 加上 $page

$articles = $this->paging($this->relations($tags, $count*10, Article::CATEGORY_VIDEO), $count, $page);

$urlPattern = $this->linkFactory->videoTag($type, $tags);

return $this->render("articles", $urlPattern, [

"tagName" => $tagsStr,

"articles" => $articles,

"matchType" => $type,

"tdk" => [

"topic" => $this->findTdkTags($tagsStr),

]

]);

}

明显看到,是有一个page 参数,我们可以给一个默认为空即可。

详细举一个例子 来讲

报错提示

abstract class A {

// 方法无参数

public static function foo(){ echo 'bar'; }

}

abstract class B extends A {

// 方法有参数

public static function foo($str){ echo $str; }

}

?>

如上面的代码:类A中的foo方法无参数,类B在继承A后重写foo方法时加入了参数,因此会产生一个类似下面E_STRICT级别的警告:

Strict standards: Declaration of ... should be compatible with that of ...

解决方法:

abstract class A {

// 方法无参数

public static function foo(){ echo 'bar'; }

}

abstract class B extends A {

// 方法有参数

public static function foo($str = NULL){ echo $str; }

}

?>

解决办法

类B在重写foo方法时为新加入的参数指定一个默认值即可。

本作品采用《CC 协议》,转载必须注明作者和本文链接

感谢关注

上海PHP自学中心-免费编程视频教学|



推荐阅读
  • PHP图片截取方法及应用实例
    本文介绍了使用PHP动态切割JPEG图片的方法,并提供了应用实例,包括截取视频图、提取文章内容中的图片地址、裁切图片等问题。详细介绍了相关的PHP函数和参数的使用,以及图片切割的具体步骤。同时,还提供了一些注意事项和优化建议。通过本文的学习,读者可以掌握PHP图片截取的技巧,实现自己的需求。 ... [详细]
  • 本文介绍了Python高级网络编程及TCP/IP协议簇的OSI七层模型。首先简单介绍了七层模型的各层及其封装解封装过程。然后讨论了程序开发中涉及到的网络通信内容,主要包括TCP协议、UDP协议和IPV4协议。最后还介绍了socket编程、聊天socket实现、远程执行命令、上传文件、socketserver及其源码分析等相关内容。 ... [详细]
  • MVC设计模式的介绍和演化过程
    本文介绍了MVC设计模式的基本概念和原理,以及在实际项目中的演化过程。通过分离视图、模型和控制器,实现了代码的解耦和重用,提高了项目的可维护性和可扩展性。详细讲解了分离视图、分离模型和分离控制器的具体步骤和规则,以及它们在项目中的应用。同时,还介绍了基础模型的封装和控制器的命名规则。该文章适合对MVC设计模式感兴趣的读者阅读和学习。 ... [详细]
  • 使用圣杯布局模式实现网站首页的内容布局
    本文介绍了使用圣杯布局模式实现网站首页的内容布局的方法,包括HTML部分代码和实例。同时还提供了公司新闻、最新产品、关于我们、联系我们等页面的布局示例。商品展示区包括了车里子和农家生态土鸡蛋等产品的价格信息。 ... [详细]
  • CSS3选择器的使用方法详解,提高Web开发效率和精准度
    本文详细介绍了CSS3新增的选择器方法,包括属性选择器的使用。通过CSS3选择器,可以提高Web开发的效率和精准度,使得查找元素更加方便和快捷。同时,本文还对属性选择器的各种用法进行了详细解释,并给出了相应的代码示例。通过学习本文,读者可以更好地掌握CSS3选择器的使用方法,提升自己的Web开发能力。 ... [详细]
  • [译]技术公司十年经验的职场生涯回顾
    本文是一位在技术公司工作十年的职场人士对自己职业生涯的总结回顾。她的职业规划与众不同,令人深思又有趣。其中涉及到的内容有机器学习、创新创业以及引用了女性主义者在TED演讲中的部分讲义。文章表达了对职业生涯的愿望和希望,认为人类有能力不断改善自己。 ... [详细]
  • 知识图谱——机器大脑中的知识库
    本文介绍了知识图谱在机器大脑中的应用,以及搜索引擎在知识图谱方面的发展。以谷歌知识图谱为例,说明了知识图谱的智能化特点。通过搜索引擎用户可以获取更加智能化的答案,如搜索关键词"Marie Curie",会得到居里夫人的详细信息以及与之相关的历史人物。知识图谱的出现引起了搜索引擎行业的变革,不仅美国的微软必应,中国的百度、搜狗等搜索引擎公司也纷纷推出了自己的知识图谱。 ... [详细]
  • 本文介绍了使用PHP实现断点续传乱序合并文件的方法和源码。由于网络原因,文件需要分割成多个部分发送,因此无法按顺序接收。文章中提供了merge2.php的源码,通过使用shuffle函数打乱文件读取顺序,实现了乱序合并文件的功能。同时,还介绍了filesize、glob、unlink、fopen等相关函数的使用。阅读本文可以了解如何使用PHP实现断点续传乱序合并文件的具体步骤。 ... [详细]
  • MACElasticsearch安装步骤及验证方法
    本文介绍了MACElasticsearch的安装步骤,包括下载ZIP文件、解压到安装目录、启动服务,并提供了验证启动是否成功的方法。同时,还介绍了安装elasticsearch-head插件的方法,以便于进行查询操作。 ... [详细]
  • 计算机存储系统的层次结构及其优势
    本文介绍了计算机存储系统的层次结构,包括高速缓存、主存储器和辅助存储器三个层次。通过分层存储数据可以提高程序的执行效率。计算机存储系统的层次结构将各种不同存储容量、存取速度和价格的存储器有机组合成整体,形成可寻址存储空间比主存储器空间大得多的存储整体。由于辅助存储器容量大、价格低,使得整体存储系统的平均价格降低。同时,高速缓存的存取速度可以和CPU的工作速度相匹配,进一步提高程序执行效率。 ... [详细]
  • 本文介绍了在Oracle数据库中创建序列时如何选择cache或nocache参数。cache参数可以提高序列的存取速度,但可能会导致序列丢失;nocache参数可以避免序列丢失,但在高并发访问时可能导致性能问题。文章详细解释了两者的区别和使用场景。 ... [详细]
  • 本文介绍了操作系统的定义和功能,包括操作系统的本质、用户界面以及系统调用的分类。同时还介绍了进程和线程的区别,包括进程和线程的定义和作用。 ... [详细]
  • 本文介绍了OkHttp3的基本使用和特性,包括支持HTTP/2、连接池、GZIP压缩、缓存等功能。同时还提到了OkHttp3的适用平台和源码阅读计划。文章还介绍了OkHttp3的请求/响应API的设计和使用方式,包括阻塞式的同步请求和带回调的异步请求。 ... [详细]
  • Todayatworksomeonetriedtoconvincemethat:今天在工作中有人试图说服我:{$obj->getTableInfo()}isfine ... [详细]
  • 篇首语:本文由编程笔记#小编为大家整理,主要介绍了软件测试知识点之数据库压力测试方法小结相关的知识,希望对你有一定的参考价值。 ... [详细]
author-avatar
水门街口卖瓜子的
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有