2016-08-26 3 views
-2

다른 함수 안에 여러 번 호출 된 하나의 함수가 있습니다. 뭐 그런 :다른 함수 안에 여러 번 호출 된 배열을 가진 함수

function function_one() 
{ 

global $get, $count; 

function_two(); 
$ok1 = $get[0]; 

function_two(); 
$ok2 = $get[1]; 

function_two(); 
$ok3 = $get[2]; 

} 

에서 "function_two()", 내가 배열로 설정되어있는 "얻을 $"변수를 가지고 있고, 나는 그런 뭔가 카운터가 있습니다

function function_two() 
{ 

    global $get, $count; 

    // something here 

    $get = array(); 

    if (isset($count)) 
    { 
     $count = $count; 
    } else { 
     $count = 0; 
    } 

    $get[$count] = $some_value; 

    $count ++; 

} 

문제 : "$ ok3"만 찼고 나머지는 비어 있습니다. 제발 도와주세요!

+1

정확히 function_two는 무엇을합니까? 전역 내부 기능을 사용하지 마십시오. 교차 함수 값을 전달하려면 매개 변수를 사용하십시오. – Phiter

+1

세계를 사용하지 마십시오! 변수를 매개 변수로 전달하십시오. 또한 우리에게 [mcve] – Rizier123

+0

두 번째 함수는'function_two'라고 정의합니까? 두 함수를'function_one' 함수로 쓴 오타가 무엇입니까? –

답변

-1

나는 2 기능 기능이 (당신은 기능에 1 점을 추가하는 듯) 문제가이 가져 오기 비우는 배열 (그것 모두) 내가 줄을 삭제 것을 재설정

$get=array(); 

입니다 있으리라 믿고있어 이 모든 것을 호출하기 전에 $get=array();을 주 기능으로 이동하십시오. 또는 함수 1 (실제 함수 하나)의 맨 위로 이동할 수 있습니다.

-1

두 번째 주석의 function_one()은 실제로 function_two()입니다. 귀하의 문제는 여기에 있습니다 :

$get = array(); 

당신은 $ 빈 배열로 함수를 호출 할 때마다 변수를 가져올 포맷합니다. 어쨌든 은 글로벌을 사용하지 않습니다. 대신 변수가있는 클래스를 만들고 매개 변수를 사용하십시오.

class Count { 

    public $get = array(); 

    function_two($count) { 
     $this->get[$count] = $some_value; 
     $count++; 
     return $count; 
    } 

    function get() { 
     return $this->get; 
    } 
} 
+0

Rcls, 어떻게 클래스를 사용할 수 있습니까? 이 스크립트를 좀 더 우아하게 만드시겠습니까? –

+0

효과가있었습니다! 고마워요! 나는 Barmar와 Forbs 팁을 사용합니다. 이 스크립트는 사용자가 보낸 이미지의 축소판을 만드는 범용 스크립트의 일부입니다. 각 "$ get [x]"는 새 이미지의 이름입니다 (예 : 너비, 높이, 경로, 크기 일 수 있음). 이 데이터는 데이터베이스에 기록됩니다. 보편적으로는 몇 줄의 코드로 내 사이트의 모든 콘텐츠에서 사용할 수 있습니다. –