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???