0

checkTemperature($temp)3つの異なる可能性を返すことができるという関数があるとします。

  1. 熱すぎる
  2. わかった
  3. 寒すぎる

-1, 0, 1or 1, 2, 3(など)などの整数または上記のような文字列を返しますか?

ベストプラクティスと見なされるものは何ですか?

4

5 に答える 5

11

通常は列挙型を使用しますが、PHPは列挙型構造をサポートしていません。ただし、確かにそれらをエミュレートすることはできます。

class Temperatures
{
    const TooHot = 1;
    const OK = 2;
    const TooCold = 3;
}

その後、あなたはすることができます

return Temperatures::TooHot;

そして比較する

if ($retval == Temperatures::OK)

変数に割り当てる値は、変数が異なる限り、それほど重要ではありません。アプリとコンテキストに応じて、興味深いものに値を使用できます。

于 2012-09-18T19:57:45.533 に答える
2

-1は通常、「見つからない」または私が遭遇した規則での無効な読み取りへの参照です。文字列は簡単に理解でき、文字列を数値に割り当てる方法はたくさんあります。たとえば、寒すぎる= -100、暑すぎる= 100、ちょうどいい=75。

私はこれに整数よりも文字列を投票します。

于 2012-09-18T20:00:16.173 に答える
1

個人的に、私はそれが理にかなっているところで数値と比較可能なものを使う傾向があります。'マジックナンバー'効果を回避するためにクラスに定数を追加します。

<?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"; }
于 2012-09-18T19:59:22.333 に答える
0

オーバーヘッドを減らすために使用できます#define

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

すでに使用している場合にのみ、クラスを使用するのが理にかなっています。

于 2012-09-18T20:12:06.133 に答える
-1

この場合、「ベストプラクティス」はありません。文字列を返す方が理にかなっている場合もあれば、整数が機能する場合もあります

于 2012-09-18T19:58:31.447 に答える