2011-12-28 2 views
0

以下の例のように文字列を操作するときに変数名を再利用するのは悪いフォームですか?文字列を変更するときに変数名を再利用する(PHP)

<?php 
    $string = "Jimmy <b>likes</b> red shoes"; 
    $string = strip_tags($string); 
    $string = str_replace("red", "blue", $string); 
    $string = strtoupper($string); 
    echo $string; 
    ?> 

いいえ、それは何ですか? 1つのコード行にする必要がありますか?または、4つの異なる変数名を使用しますか?

私は検索してみましたが、変数を配列から文字列などに変更することに関する唯一の参照がありました。

ありがとうございました!
ビリー

+0

「変数名を再利用しない」という意味ではないと思います。言ってるだけ'。 –

+0

私にとっては大丈夫です、そして、私はこのような発言をしています。 –

+0

"名前を再利用する"と考える代わりに、同じ変数を何回か変更するだけで、それを考えることができます。そして、いいえ、それは絶対に間違っているとは言えません。 – powerbuoy

答えて

3

元の$stringの値を後でもう一度入力する必要がない限り、問題はありません。 $string = something($string)を実行すると、元の値は破棄され、変更されたバージョンに置き換えられます。理論的には

、あなたは、単に一緒に

echo strtoupper(str_replace('red', 'blue', strip_tags('Jimmy likes...'))); 

シーケンス全体をチェーンでしたが、それが読めないとunmaintainableコードになります。

+0

私はPHPを学ぶ上での難しさの一つが、このようなことを内側から読もうとしていたことを覚えています。 OPのバージョンははるかに明確です。 –

+1

@Marmartigan:OPのバージョンははるかに明確です。しかし、この記事の記事:http://code.google.com/speed/articles/optimizing-php.html:何も理由なく変数をコピーしないでください。 –

+0

@ZulkhaeryBasrul: "理由はありません"?その理由は、可読性とメンテナンスの容易さです。私はいくつかの理由を考えることができますが、私はそれを残します。 –

0

変数名は、そこに格納されているデータの簡潔で正確な記述でなければなりません。その結果、変数名を再使用すると、より良い名前がない場合でも、それは良いことです。フリップ側では、変数はoptimizationに見当違いの試みで再使用すべきではない。

for ($i=0; $i < n; ++$i) { 
    ... 
} 
for ($map as $i => $value) { 
    ... 
} 

指標第二ループ内($iに格納された値)より良好な整数ではなく、再利用$i$iは整数インデックスのほぼ普遍的なコードなので、文字列を格納することができます。誰かが空き領域を主張する場合は、unsetを使用できます。

変数の本当の危険は、名前空間の衝突によってデータが上書きされる可能性がある、広範囲(グローバルおよび大規模関数)でそれらを使用することです。衝突を防ぐことに加えて、小さな関数は、ローカル変数がより短命になるので、メモリ使用量を減らすのに役立ちます。

関連する問題