草庐IT

b-Class-Interface

全部标签

php - Class::getInstance 的起源/解释?

我对经典继承相当陌生,因为我主要处理ECMAScript和Python,尽管我对PHP也有一定了解(不寒而栗)。我知道它深受Java和其他基于经典继承的语言的影响。问题:我正在查看框架中的几个类,并注意到没有调用(至少直接调用)“new”关键字来创建实例,而是使用公共(public)getInstance方法来创建初始对象。有人可以解释这背后的策略吗?我什么时候应该在自己的类(class)中使用它?相关代码:classFrontController{publicstatic$_instance;publicstaticfunctiongetInstance(){if(!(self::$

php - 类型错误 : Value does not implement interface HTMLInputElement

我正在尝试使用jQuery-ajax发布表单,但在点击发布表单时出现此错误。TypeError:值未实现接口(interface)HTMLInputElement这是我的JavaScript代码:$('document').ready(function(){$('#update').click(function(){jQuery.post("update_category",{c_id:c_id,c_name:c_name,c_description:c_description},function(data,textStatus){if(data==1){$('#response').

PHP:接口(interface)中的抽象方法

为什么我不能在接口(interface)中声明抽象方法?这是我的代码。谢谢。connection;}}classMySQLConnectionextendsConnectionAbstract{publicfunctionconnect(){echo'connecting...';}}$c=newMySQLConnection();?> 最佳答案 接口(interface)中的所有函数都是隐式抽象的。声明函数时无需使用abstract关键字。 关于PHP:接口(interface)中的抽

php - 捕获接口(interface)异常。

我对PHP中的异常处理有疑问。我有很多异常(exception),意思是一样的:找不到东西。所有这些异常都实现了接口(interface)(不是类)NotFoundException。所以我的问题是:可以检查异常是否在catchblock中实现了接口(interface)。我知道我可以将NotFoundException接口(interface)更改为一个类,但一些异常已经扩展到另一个异常。(示例:CategoryNotFoundException扩展CategoryException并实现NotFoundException)。为什么我需要这个接口(interface)?当一个页面正在

php oop 编程 : building a class

我正在考虑建立我的第一个真正的类(class),我玩过点点滴滴,但现在是真正尝试的时候了:)我想要做的是有一个表单类来处理我所有的表单提交,检查输入的数据并返回错误消息或成功消息。这是我的一个表格,(我在一页上有5个)BusinessSectordatabase->query("SELECT*FROMtbl_sectors");while($row=$user->database->fetchArray($query)){$id=$row['sectorID'];$dept=$row['sectorName'];echo"$dept";}?>Locationdatabase->quer

php - 具有返回类型和 SOLID 的接口(interface)

自PHP7发布以来,我一直在重温SOLID原则。特别是Liskovsubstitutionprinciple的想法简而言之,它指出类的任何扩展都应该能够在可以使用其父类的任何地方使用。此原则的一部分是针对接口(interface)进行编码,因此您的方法定义了要遵守的契约。但是,在PHP5及以下版本中,返回类型不存在。因此,尽管您必须将相同的参数类型传递给使用接口(interface)的方法,但您可以返回任何您喜欢的旧类型。对于大型项目,这使得遵守这一原则比使用其他语言要困难得多。我还没有安装PHP7来测试它,我也没有在PHP手册或任何博客网站上看到任何宣传新功能的文档。PHP7中的接口

php - 第 29313 行的 fatal error : Class 'Magento_Db_Adapter_Pdo_Mysql' not found in/home/xxxx/public_html/xx/xx/includes/src/__default. php

我只是做了所有这些解决方案但未能得到解决方案对您的magento文件夹拥有777权限。chmod775lib/Magento/Db/Adapter/Pdo/Mysql.php 最佳答案 请查看this还有this同时在您的服务器上启用pdo扩展您需要在php.ini文件中启用PDO和PDO_MYSQL扩展。转到您的php.ini文件,该文件位于安装PHP的目录中,并删除以下行中的注释(;);extension=php_pdo.dlltoextension=php_pdo.dll在Windows服务器上,您可以在php.ini中添加以

php - 如何在php中实现鸡鸡蛋鸟类接口(interface)问题

我得到了下面的代码挑战。它是关于接口、类继承等的,不知道怎么做。这是我得到的//interfacebirdinterfaceBird{//layeggpublicfunctionlayEgg();}//chickencanlayeggclassChickenimplementsBird{publicfunctionlayEgg(){returnnewEgg();}}//classeggclassEgg{public$count=0;//egg,birdtypepublicfunction__construct($birdType){}//hatch,bornchickpublicfun

php - 闭包如何帮助创建 DSL/fluent 接口(interface) : PHP examples?

您能给我一个PHP示例,说明闭包如何有助于创建DSL(流畅的接口(interface))吗?编辑:以下问题中接受的答案讲述了嵌套闭包。如果有人可以将该示例翻译成PHP,那也会有所帮助:Experiencewithfluentinterfaces?Ineedyouropinion! 最佳答案 这是我能想到的第一个例子,它不是很好,但它给了你一个想法:$db=newDatabase();$filteredList=$db->select()->from('my_table')->where('id',9)->run()->filter(

command-line-interface - 在不使用 foreach 循环的情况下迭代关联数组并导致内存泄漏

我正在开发一个无限循环运行的命令行脚本。一段时间后,它会导致段错误,我认为这是由内存泄漏引起的。我想我是对的,因为在查看ps命令产生的结果后,脚本使用的内存似乎在脚本崩溃之前不断增加。我找到了thisarticle,它指出命令行php中内存泄漏的一个可能原因是使用foreach循环,它创建永远不会取消设置的数组副本。经过一些研究,情况似乎是这样。所以我决定用它们的for等效项替换所有foreach循环。第一个问题-我的推理是否正确?第二个-如果我有一个要迭代的关联数组并且我想知道当前键怎么办?我能想到的一种方法是使用array_walk(),另一种方法是结合使用next()和key()