假设我有一个checkTemperature($temp)
可以返回三种不同可能性的函数:
- 太热
- 好的
- 太冷
你会返回整数,比如-1, 0, 1
or 1, 2, 3
(etc..) 还是字符串,比如上面的?
什么被认为是最佳实践?
假设我有一个checkTemperature($temp)
可以返回三种不同可能性的函数:
你会返回整数,比如-1, 0, 1
or 1, 2, 3
(etc..) 还是字符串,比如上面的?
什么被认为是最佳实践?
您通常会使用枚举,但 PHP 并不直接支持枚举构造。但是,我们当然可以效仿他们。
class Temperatures
{
const TooHot = 1;
const OK = 2;
const TooCold = 3;
}
然后你可以做
return Temperatures::TooHot;
并比较
if ($retval == Temperatures::OK)
只要它们不同,您为变量分配的值并不重要。您可以根据您的应用程序和上下文将这些值用于有趣的事情。
-1 通常是对我遇到的约定中的“未找到”或无效阅读的引用。字符串很容易理解,并且有许多方法可以将字符串分配给数值。例如太冷=-100,太热=100,刚刚好=75。
我会在这个上投票字符串而不是整数。
就个人而言,我倾向于在有意义的地方使用数字和可比性。向类中添加常量以避免“幻数”效应。
<?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"; }
为了减少开销,您可以使用#define
define('TEMP_HOT', 1);
define('TEMP_OK', 2);
define('TEMP_COLD', 3);
如果你已经这样做了,那么使用一个类才有意义。
在这种情况下没有“最佳实践”。在某些情况下,返回一个字符串会更有意义,而其他时候一个整数会完成这项工作