2012-04-27 6 views
0
function test($matches) 
{ 
    $fx = ''; 
    if(strpos($matches[0],"http://")===false) 
    { 
     $fx = "http://"; 
    } 
    elseif(strpos($matches[0],"http:/")===false) 
    { 
     $fx = "http:/"; 
    } 
    elseif(strpos($matches[0],"http:")===false) 
    { 
     $fx = "http:"; 
    } 
    elseif(strpos($matches[0],"http")===false) 
    { 
     $fx = "http"; 
    } 
    return $fx.$matches[0]; 
} 

またはこれらのPHPスクリプトはサーバーのメモリを少なくしますか?

function test($matches) 
{ 
    if(strpos($matches[0],"http://")===false) 
    { 
     return "http://".$matches[0]; 
    } 
    elseif(strpos($matches[0],"http:/")===false) 
    { 
     return "http:/".$matches[0]; 
    } 
    elseif(strpos($matches[0],"http:")===false) 
    { 
     return "http:".$matches[0]; 
    } 
    elseif(strpos($matches[0],"http")===false) 
    { 
     return "http".$matches[0]; 
    } 
} 

私はできるだけ少ないメモリを使用し、それらに私のスクリプトを記述しようとしているが、時にはコードをIDKのだが、醜い見て、私のopnionに最初のスクリプトは、よりきれいに見えると組織化が、私はそれがサーバーのより多くのメモリを使用すると思います。

ありがとうございました。

+3

['memory_get_usage()'](http://us3.php.net/manual/en/function.memory-get-usage.php)と['memory_get_peak_usage()'](http: /us3.php.net/manual/en/function.memory-get-peak-usage.php)。 –

+0

しかし、サーバーのパフォーマンスが低下しているか、サーバーの要求を満たすことができない場合を除いて、実際には心配する必要はありません。これらの2つの違い(もしあれば)はそれほど無視することはできません。 –

+0

これらの関数は、2つの異なるものを返します。最初のものは結果を返し、2番目のものは返さない。あなたはスイッチケースの機能もテストしています。 – iambriansreed

答えて

2

メモリの使用量が少ない場合は、両者が同等であると思います(どちらも最悪の場合)。

しかし、実行時間に関しては、2番目のものは1つの一致条件が見つかると直ちに戻るため、最初のものよりも数ナノ秒早く実行を終了します。 Big-Oのすべての違いは、私たちがすべて知っていることは分かりません.O(3n)と最良の場合のO(n)と最悪の場合のO(3n)verse O(3n) $ match [0]のサイズで)。 しかし、これはすべてstrpos()関数の複雑さに深く依存しています。

読みやすくするために、それらは同様に記述され、構造化されています。

+0

私はどこのスクリプトを書いてヒントを見つけることができますか? –

関連する問題