2016-09-08 59 views
1

PHP関数は、呼び出すたびにサーバー側で処理されますか? 私はこれが私のパフォーマンスに影響を与えるかどうかわからないので、これを尋ねています。呼び出されるたびにPHP関数が実行されますか?

例:それは二回、または一度だけ長いループをしますか。この例では

<?php 
    function really_long_loop() { 
    $array = array(); 
    for ($i=1; $i < 1000; $i++) { 
     array_push($array, $i); 
    } 
    return $array; 
    } 


    function FirstFunction() { 
    $get_loop = really_long_loop(); 
    } 

    function SecondFunction() { 
    $get_loop = really_long_loop(); 
    } 
?> 

+1

それを呼び出す関数は決して実行しないので決してありません –

+0

↑しかし、関数を呼び出すと、ループを2回実行します。 – Phiter

+1

それはなぜでしょうか?つまり、関数を呼び出すと何かが壊れ、実行されません。 – Epodax

答えて

1

これで機能を実行しましょう。この場合、ループを2回実行します。もちろん、それは意図されています。

<?php 
FirstFunction(); 
SecondFunction(); 
?> 

変数に関数の戻り値を適用すると、変数に値が保持され、この変数を呼び出すときにループが再度実行されません。

あなたのページに2つの場所でループから同じ値が必要になります場合は、あなたがこれを行うことができます:

<?php 
    $loopResult = really_long_loop(); 

?> 

あなた$loopResult変数を除いて、コード実行の残りの値を保持しますこの関数をパラメータとして渡す必要があります。

たとえば、$foo = $loopResultを呼び出すと、ループ機能は再び実行されません。

+0

私は偶発的にループの戻り値を入れました(私のnoobアカウントのため編集できません)。しかし、あなたが意味することは、グローバル変数を設定し、そこで戻り値を保持することです。 –

+0

正確ではないが、私はもっと書くだろう。 – Phiter

+0

偉大な答えをありがとう! –

関連する問題