gpt4 book ai didi

php - 同时疯狂混淆PHP OOP "implements" "extends"

转载 作者:可可西里 更新时间:2023-10-31 22:54:38 27 4
gpt4 key购买 nike

abstract class SF_Model_Acl_Abstract 
extends SF_Model_Abstract
implements SF_Model_Acl_Interface, Zend_Acl_Resource_Interface
{
protected $_acl;
protected $_identity;
public function setIdentity($identity)
{
if (is_array($identity)) {
......
......

你能帮我解释一下它是如何同时“implements”和“extends”的吗?
它只是将3个类组合在一起吗?

我完全糊涂了!

最佳答案

extends 用于继承,即从类继承方法/字段。一个 PHP 类只能继承自一个类。

implements 用于实现接口(interface)。它只要求类具有在实现的接口(interface)中定义的方法。

例子:

interface INamed { function getName($firstName); }
class NameGetter { public function getName($firstName) {} }
class Named implements INamed { function getName($firstName) {} }
class AlsoNamed extends NameGetter implements INamed {}
class IncorrectlyNamed implements INamed { function getName() {} }
class AlsoIncorrectlyNamed implements INamed { function setName($newName) {} }

此代码在第 5 行中引发 fatal error ,因为接口(interface)中的方法未正确实现(缺少参数)。它还会在第 6 行抛出一个 fatal error ,因为接口(interface)中的方法根本没有实现。

关于php - 同时疯狂混淆PHP OOP "implements" "extends",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5285914/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com