gpt4 book ai didi

php - 在一个类中混合静态和非静态方法是否可以接受?

转载 作者:行者123 更新时间:2023-12-01 10:45:33 25 4
gpt4 key购买 nike

我有一个相对简单的问题,虽然谷歌上有很多关于它的帖子,但我找不到一个简单地回答这个问题的帖子。

所以简短的问题是“在一个类中混合静态和非静态方法是否可以接受?”。我想我真的在问“坚持使用一种方法是一种好习惯吗”,或者“在使用这两种方法时有什么需要考虑的事情”。

例如,如果我正在建立一个类(class)来处理我冰箱里的食物,以下哪个(或其他什么)是最好的方法

示例 1:

Class Food
{
public function __construct( $itemName, $itemDescription )
{
.... some code for a new item of food ....
}

public static function getAllFood()
{
.... some code to get all the items in my fridge ....
}
}

$food = new Food( "apple", "Nice juicy Pink Lady apple" );
Food::getAllFood();

或示例 2:
Class Food
{
public function __construct( $itemName, $itemDescription )
{
.... some code for a new item of food ....
}

public function getAllFood()
{
.... some code to get all the items in my fridge ....
}
}

$food = new Food( "apple", "Nice juicy Pink Lady apple" );
$food->getAllFood();

提前致谢

最佳答案

问:在一个类中混合静态和非静态方法是否可以接受?

答:当然可以,只要:

1) 你真的觉得这两种方法在逻辑上属于同一个类,并且

2)可以/应该独立于任何类实例调用静态方法。

最好的经验法则是在调用真正无状态时使用静态方法。

这是一个很好的讨论:

  • http://verraes.net/2014/06/when-to-use-static-methods-in-php/
  • 关于php - 在一个类中混合静态和非静态方法是否可以接受?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26746988/

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