gpt4 book ai didi

PHP 面向对象问题

转载 作者:搜寻专家 更新时间:2023-10-31 20:53:09 25 4
gpt4 key购买 nike

是否可以要求 PHP 5.3 中的对象包含某些常量或属性?我阅读了一些关于 PHP 的接口(interface)模型的内容,它似乎只适用于抽象公共(public)方法,所以这是正确的。所以我要问的是,是否有办法拥有两个对象对象 A 和对象 B。如果对象 B 想要扩展对象 A,它必须包含一个特定的常量或变量。您将如何设计这种类型的架构?谢谢。

最佳答案

http://php.net/manual/en/language.oop5.interfaces.php#language.oop5.interfaces.constants

Its possible for interfaces to have constants. Interface constants works exactly like class constants except they cannot be overridden by a class/interface that inherits it.

接口(interface)常量不能被继承类覆盖。类常量可以被覆盖,但不是必需的(即使在抽象类中声明)。抽象类旨在强制执行接口(interface),而不是实现。常量属于实现,而方法定义接口(interface)。因此,虽然可以在抽象类中使用默认值声明常量,但由 child 决定是否使用或重新定义它们。

您最好的选择是使用“getter”方法,例如:

abstract class MyAbstract
{
abstract public function getPropertyA();
abstract public function getPropertyB();
}

现在,任何使用 extend MyAbstract 的类都需要定义 getPropertyA()getPropertyB(),以确保值始终可访问。

关于PHP 面向对象问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5474269/

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