我有一个定义方法charge()的接口,需要第一个参数,第二个参数是可选的,我的布局如下所示:
interface Process{
public function charge($customerProfileId, $paymentProfileId = null);
// Other items
}
abstract class CardProcessor implements Process{
// Some methods & properties are here
}
class Authorize extends CardProces
Comparare.php
<?php
interface Comparare{
public function compara(self $a);
}
?>
clasa.php
<?php
class Clasa implements Comparare{
public $v;
public function compara(self $a){
if($this->v < $a->v)
{
return -1;
}
我做了一个简单的例子来展示我想要做的事情:
<?php
interface UserManagement
{
public function createUser(object $user): ?string;
}
class User
{
public $id;
public $username;
public $email;
}
//-----------------------------------------------------------//
class MyUser extends User
{
}
class MyUserMa
我将跟随一些关于PHP的学习材料,现在学习抽象类和方法以及接口。在实现接口时,我在第一次运行时遇到了一个错误。这是在定义类和接口时发生的。对于代码示例的大小,我事先表示歉意,但我想谨慎一点。
我收到的错误是:
‘错误:DinnerMenu的声明::setDinnerPortion()必须与第85行的. Menu.php中的DinnerPortion::setDinnerPortion()兼容’。
Menu.php如下:
<?php
abstract class Menu { // can't be instanciated, only extended from
以下是问题所在:
interface iSuperAdmin
{
public function getCount();
}
class SuperAdmin implements iSuperAdmin
{
public function getCount()
{
return 1;
}
}
interface iRegularAdmin
{
public function getCount($count);
}
class RegularAdmin extends SuperAdmin implements iRegula
我得到了一个错误,这对我来说是奇怪的,但也许我做错了什么,或对这些工作方式产生了误解。我试着在谷歌上搜索并查看类似的问题,但它们似乎都不一样,所以这就是我现在所处的位置。
概述:我有一个实现QueryableServiceProvider的服务模型。QueryableServiceProvider是一个接口,它有一个方法single(),该方法键入一个QueryStruct接口作为参数。然后,在作为服务的模型中,我有一个single()方法,该方法键入提示SingleStruct类。SingleStruct类实现QueryStruct接口。但是,当我尝试运行这个程序时,我得到的是错误:
Mo
我正在使用laravel orm组件,并在部署life服务器时观察到以下情况。
我得到了错误
Declaration of Illuminate\Database\Eloquent\Collection::toJson()
must be compatible
with Illuminate\Support\Contracts\JsonableInterface::toJson($options = 0)
我部署在一个安装了php v5.4.6的ubuntu服务器上。当我在安装了php v5.3.5的本地机器上工作时,我没有得到这个。
接口声明如下
public function toJ
关键词抽象在界面中的意义是什么?我试图在界面中写抽象关键字。
<?php
interface I
{
abstract function test ();
}
class A implements I{
public function test ($offset)
{
}
}
$x=new A();
?>
获取错误:
Fatal error: Access type for interface method I::test() must be omitted in test.php on line 4
但是这里所有的方法都是抽象的,
当方法签名必须改变时,如何在PHP中重载子类方法,遵守OOP和SOLID原则。有一些设计模式是为此而设计的吗?
<?php
class Client extends People
{
protected function fillData(ClientDTO $clientDTO)
{
parent::fillData($clientDTO);
...
}
}
class People
{
protected function fillData(PeopleDTO $peopleDTO)
{
..
在PHP7.1下使用以下代码
class MySqlSessionHandler implements \SessionHandlerInterface {
public function read(string $session_id) : string { ... }
}
我得到:
致命错误:声明会话\MySqlSessionHandler::read( string $session_id):string必须与SessionHandlerInterface::read($key)兼容
当我删除类型声明"string“时,如
public function
为什么我不能在接口中声明抽象方法?这是我的代码。谢谢。
<?php
interface Connection {
public abstract function connect();
public function getConnection();
}
abstract class ConnectionAbstract implements Connection() {
private $connection;
public abstract function connect();
public function getConnection
假设您有以下内容:
<?php
interface Type
{}
class SomeType implements Type
{}
class SomeOtherType implements Type
{}
现在,如果您有一个将Type接口作为构造函数依赖项的抽象类,如下所示:
<?php
abstract class TypeUser
{
public function __construct(Type $type)
{}
}
为什么PHP允许重载具体类上的构造函数,如下所示:
<?php
class SomeTypeUser
错误:
Parse error: syntax error, unexpected T_STRING, expecting T_VARIABLE in
PSubscriptionFile.php on line 90;
我认为公共静态_fromJSON应该是公共的
static function _fromJSON
但这给出了致命的错误:
Declaration of PSubscriptionFile::__construct() must be compatible with that of
PuSHSubscriptionInterface::__construct() in P
什么是实现函数?通常,我所知道的是实现一个接口,该接口具有
function foo();
和实现like
function foo($bar)
在另一个班级
但是当我在接口中实现函数时会发生什么呢?我必须在子类中重新实现它们吗?或者我可以直接在子类中使用它们,假设它们是在子类中实现的。
interface ibarbar{
function foo($bar)
{
return $bar.$bar;}
}
class barbar implements ibarbar
{
function baz()
{
$this->barbar(); //used without i
我使用Intellij开发php。
class A {
}
class B extends A {
public function myFunc() {}
}
class C {
/**
* Return class object
*
* @return A
*/
public function get() {
return $a_or_child_a_class_from_some_list;
}
}
$cObject = new C();
$cObject
->get()
->myFunc()
示例:接口是
public function doFoo($bar);
我可以有一个用方法实现接口的类吗?
public function doFoo(array $bar = array('test')) { }
在PHP中,方法签名意味着什么?
它仅仅是方法名和参数名吗?还是也包括参数的类型提示和默认值?
我的Visual代码显示“未定义的方法”。我想知道是否有可能用一些VSC设置来“修复”它,或者有一个PHP解决方案。我有这个
class A
{
public function someMethodA()
{
// ...
}
}
class B extends A implements Bint
{
public function someMethodB()
{
// ...
}
}
interface BInt
{
public function someMethodB();
}
class C
interface A {
void hi();
}
class AImpl implements A {
public void hi() {
System.out.println("hi");
}
public void to() {
System.out.println("Test");
}
}
public class InterfaceTest {
public static void main(String[] args) {
A a
Interface A
{
int Add(int a,int b);
}
Interface B
{
int Add(int a,int b);
}
Class D : A, B
{
int Add(int a,int b)
{
return a+b;
}
}
代码运行良好,没有产生任何错误。类D使用的是哪个接口的方法?
我想用PHP创建一个接口,但我不希望它在其中一个公共方法中接受哪种参数类型的限制太大。我不想做
interface myInterface {
public function a( myClass $a);
}
因为我可能不想将它传递给myClass的一个实例。但是,我确实希望确保传递的对象符合某些参数,这可以通过定义接口来完成。因此,我想指定使用接口的类,如下所示:
<?php
interface iA {}
interface iB {}
interface iC {
public function takes_a( iA $a );
public fun
我知道在java类中,有一个静态方法排序:
sort(List<T> list, Comparator<? super T> c**)
排序中的第二个参数应该是实现比较器接口的对象及其比较方法。
但是,当我学习lambda的方法引用时,我看到了下面的示例:
public class Test
{
public static void main(String[] args)
{
new Test().sortWord();
}
public void sortWord()
{
List&l
我有一个测试脚本:
<?php
interface A
{
function myfunction();
}
class B implements A
{
function myfunction($var = "default")
{
echo $var;
}
}
class C extends B
{
function myfunction()
{
echo "myfunction";
}
}
$c = new C();
$c->myfunction();
$b = new B();
$b->
在Java8中创建默认方法时,某些Object方法不能从默认方法中调用。例如:
interface I {
default void m() {
this.toString(); // works.
this.clone(); // compile-time error, "The method clone() is undefined for the type I"
this.finalize(); // same error as above.
}
}
看来,clone()和finalize()是Object中
在php中,您不能覆盖方法,因此这样的操作是不可能的,因为decalaration是不兼容的。
class Entity
{}
class NotEntity
{}
abstract class Mapper
{
abstract public function map($data);
}
class EntityMapper extends Mapper
{
public function map(Entity $data)
{
return true;
}
}
问题是:什么是更好的解决方案?
IF:
class EntityMapper
让我们考虑下面的例子。
public interface SimpleInterface {
public void simpleMethod();
}
public class SimpleClass implements SimpleInterface{
public static void main(String[] args) {
SimpleInterface iRef = new SimpleClass();
SimpleClass cRef = new SimpleClass();
iRef.simpleMethod(); // All
我正在尝试用本教程实现Google2FA:
我使用了Laravel5.8,在教程中,他们使用的大概是5,这就是为什么我没有app/Http/Controllers/Auth/AuthController.php
更多。我有LoginController.php和RegisterController.php
如果我尝试登录并测试,我会得到以下错误:
参数2传递给App\Http\Controllers\Auth\LoginController::authenticated() must be an instance of App\Http\Controllers\Auth\Authenticat
根据面向对象编程(OOP)接口不应继承类。
既然Interface不能继承Class,那么java中的接口引用如何使用Object类方法呢?
例:-
public interface Test {
public void functionA();
}
class Child implements Test{
public void functionA() {
}
public static void main(String[] args) {
Test test = new Child();
test.toString(); // since t
我正面临着这段代码的问题。这显示了500内部错误。文件名为Dog.php。谁能帮帮我。
interface Animal{
public function bark(){
}
public function eat(){
}
}
class Dog implements Animal {
public function bark(){
echo "bark bark";
}
public function eat(){
echo "Biscuits
我们知道每个类都从Object扩展而来,这意味着我们可以在任何类中使用所有Object的方法。我的问题如下:
interface B{
}
public class A implements B{
public static void main(String[] args){
B i = new A();
i.display();//we can't do this : because the interface B doesn't define such a met