2

私は自分が使用する配列や変数に最適な名前に夢中になり、シソーラスや辞書などで単語を調べます.

だから私はこの配列/構造に名前を付けようとしています:

$nameMe = array(
    '392' => TRUE,
    '234' => TRUE,
    '754' => TRUE,
    '464' => TRUE,
);

そのIDに特定のプロパティがあるかどうかを確認するために使用されます。

if(isset($name[$id])) {
    doSomething();
}

問題は、次のような非常に長い変数名を取得していることです

$propertyNameArrayIdIndexed

配列のこの特定の関数にどのように名前を付けることができるかについてのアイデアはありますか? または一般的により良い名前

4

9 に答える 9

4
$hasProperty[$id]

また

$isSomething[$id]

プロパティとは正確には何ですか?

$isOdd[$id]
$isWriteable[$id]
$hasAssociatedFile[$id]
于 2008-10-15T01:15:21.607 に答える
2

変数がどのように宣言または定義されているかではなく、変数が何をしているかを説明している限り、長い変数名に問題はありません。

于 2008-10-15T01:11:06.933 に答える
2

変数名から「配列」を削除します。

配列を使用する関数には、次のような名前を付けることができます。

IsPropertyAvailable?($id)

あるいは単に

IsAvailable?($id)

適切にカプセル化されている場合。

したがって、クエリに関連するデータ構造には名前を付けることができます

$利用可能なID

于 2008-10-15T01:13:58.380 に答える
1

型ではなく、(UML の意味での) 「役割」で変数に名前を付けます。したがって、変数の適切な名前は、その変数がどこでどのように使用されるかに大きく依存するはずです。データ構造のタイプを知っているだけでは、適切な名前を付けるのに十分ではありません。たとえば、プロパティの列挙があり、それぞれがアイコンとしてレンダリング可能であるとします。タイプの表示を省略して、 のように宣言しますSet<Property> displayableIcons

ハンガリー語表記を使用している場合でも、実際の型は名前の一部であってはなりませんが、型修飾子または非公式のサブタイプの表示は問題ありませんString b64JpgMugshot

于 2008-10-15T01:39:31.243 に答える
1

コードをできるだけ平易な英語のように読みたいとします。平易な英語では、次のような結果になります。

車が赤い場合 赤い車のことをする

したがって、私の推奨事項は、変数の命名に不要なコンピュータ用語 (「配列」、「プロパティ」、「インデックス」など) を導入しないことです。あなたのプログラミング言語はあなたに「isset」を課しています。これで、ブール値の配列があることが明確になり、簡単に言うことができます。

if( isset(red[car_idx]) ) dosomething();

概要: 配列には、テストしようとしているプロパティとして単純に名前を付ける必要があると思います。プロパティの名前が、名詞に適用されるかどうかにかかわらず適切な英語の形容詞である場合、isset() がなくても、配列のブール型の性質は明らかです。とても簡単です。

赤[]、長方形[]、大[]

IsRed[]、IsOblong[]、IsLarge[] ではありません。これは、isset() 内のものに加えて余分な「Is」が冗長であるためです。

于 2008-10-15T01:14:41.200 に答える
0

私はdah []を使用しています。

于 2008-10-15T01:50:21.690 に答える
0

質問には適切な簡潔な命名のための適切なコンテキストがないように思われるという他のコメンターに同意しますが、able['foo']、enabled['bar']、またはready['ack']のような一般的なものが機能する可能性があります。

于 2008-10-15T02:00:11.903 に答える
0

propertyNameable、IspropertyNameable。

于 2008-10-15T01:07:40.280 に答える
0

あなたの配列はのみを含むつもりtrueですか?もしそうなら、私はあなたのデータ構造を次のように変更すると思います:

$availableIds = array(392, 234, 754, 464);

そして、あなたのif声明ははるかに意味があります:

if (in_array($myId, $availableIds)) { ... }
于 2008-10-15T01:20:56.117 に答える