Php 返回字符串还是整数?

Php 返回字符串还是整数?,php,function,return,return-value,Php,Function,Return,Return Value,假设我有一个名为checkTemperature($temp)的函数,它可以返回三种不同的可能性: 太热 嗯 太冷 是否返回整数,如-1、0、1或1、2、3(等…)或字符串,如上述 什么是最佳实践?您通常会使用枚举,但PHP并不支持枚举构造。然而,我们当然可以效仿他们 class Temperatures { const TooHot = 1; const OK = 2; const TooCold = 3; } 那你就可以了 return Temperatures::

假设我有一个名为
checkTemperature($temp)
的函数,它可以返回三种不同的可能性:

  • 太热
  • 太冷
  • 是否返回整数,如
    -1、0、1
    1、2、3
    (等…)或字符串,如上述


    什么是最佳实践?

    您通常会使用枚举,但PHP并不支持枚举构造。然而,我们当然可以效仿他们

    class Temperatures
    {
        const TooHot = 1;
        const OK = 2;
        const TooCold = 3;
    }
    
    那你就可以了

    return Temperatures::TooHot;
    
    比较

    if ($retval == Temperatures::OK)
    

    您为变量指定的值并不重要,只要它们是不同的。根据您的应用程序和上下文,您可以将这些值用于感兴趣的内容。

    在这种情况下没有“最佳实践”。在某些情况下,返回字符串更有意义,而在其他情况下,整数可以完成这项工作

    就我个人而言,我倾向于在有意义的地方使用数值和可比。向类中添加常量以避免“幻数”效应

    <?php
    
    if ($result == 2) { ... }
    // vs 
    if ($result == Temp::TOO_HOT) { ... }
    
    // Though can result in some odd code
    if ($result > Temp::OK) { echo "that's bad"; }
    

    -1通常是指我遇到的约定中的“未找到”或无效读取。字符串很容易理解,有许多方法可以将字符串指定给数值。例如,太冷=-100,太热=100,刚好=75


    在这个问题上,我会投票给字符串而不是整数

    为了减少开销,您可以使用
    #define

    define('TEMP_HOT',  1);
    define('TEMP_OK',   2);
    define('TEMP_COLD', 3);
    

    只有在您已经使用类的情况下,才有意义使用类。

    使用枚举会使代码更具可读性。这取决于您希望对返回的数据执行什么操作。返回应用程序上下文中对您有意义的内容取决于您希望以字符串(描述性)或整数(特定)的形式返回结果。是!再次投票给我之上的Enum@Xeon06很好的呼叫员。+1如果您支持OOP,这最终会更加可读和简单。否则,我主张返回字符串。我刚刚尝试过这样做,但当我定义“public const TooHot=1”时,我得到了错误“unexpected public keyword”。我需要从其他类调用函数,因此如果无法在php中公开常量(?),那么您的方法将无法工作?常量已经是公共的,不需要使用public keyword在@Xeon06示例中,您在哪里看到public const TooHot=1???