2010-07-07 3 views
0

에서의 데이터에 액세스 나는이 기능을 가지고있다. 함수 외부에서이 배열에 액세스하고 싶습니다. 위 코드의 마지막 줄 (예 : echo ...)을 사용하여이 작업을 시도했지만 작동하지 않습니다. 어떻게해야합니까?초급 PHP 질문 기능

function selectValue($test) { 
    $connection = dbConnect(HOST, USERNAME, PASSWORD, DATABASE); 
    $query = "SELECT * FROM pans where value = '$test'"; 
    $results = @mysql_query($query, $connection); 
    $value = mysql_fetch_assoc($results); 
    return $value; 
} 


$value = selectValue('abcde'); 

echo $value['something']; 

이 기능은 다양한 장소에서 실패 할 수 있다는 것을 알고 있어야합니다, 그래서 당신은 항상 반환 값이 mysql_fetch_assoc에서 결과를 포함 할 것이라고 가정해서는 안 :

답변

4
function selectValue($test) { 
$connection = dbConnect(HOST, USERNAME, PASSWORD, DATABASE); 
    $query = "SELECT * FROM table where value = '$test'"; 
    $results = @mysql_query($query, $connection); 
    $value = mysql_fetch_assoc($results); 
return $value; 
} 


$value = selectValue('abcde'); 

echo $value['something']; 
+0

그냥 포스트를 눌렀을 때와 5 답변이 모두 기본적으로 같아요. – Luke

7

당신은 함수에서 return a value해야합니다. 이 작업을 수행하는

한 가지 방법 (중 하나 방법)을 사용하기 전에 반환 값을 테스트하는 것입니다 :

function selectValue($test) { 
    $value = false; 
    $connection = dbConnect(HOST, USERNAME, PASSWORD, DATABASE); 
    $query = "SELECT * FROM pans where value = '$test'"; 
    $results = @mysql_query($query, $connection); 
    $value = mysql_fetch_assoc($results); 
    return $value; 
}  

if($value = selectValue('abcde')) { 
    echo $value['something']; 
} else { 
    echo "Something went wrong.\n"; 
} 

Exception handling가 오류를 처리하는 또 다른 방법입니다.

2

은 함수에서 return 키워드를 넣어 :

function selectValue($test) { 
$connection = dbConnect(HOST, USERNAME, PASSWORD, DATABASE); 
    $query = "SELECT * FROM pans where value = '$test'"; 
    $results = @mysql_query($query, $connection); 
    $value = mysql_fetch_assoc($results); 
    return $value; // return the value 
} 
-2

이것은 당신이 이미 함수 외부 $ 값을 정의했다고 가정

<?php 
$a = 1; 
$b = 2; 

function Sum() 
{ 
    global $a, $b; 

    $b = $a + $b; 
} 

Sum(); 
echo $b; 
?> 
+1

이런 식으로 전역을 사용하는 것은 나쁜 습관입니다. – DRL

0

을 도와 드릴까요? 그렇지 않으면 함수 외부에서 액세스 할 수 있도록 반환해야합니다.

function selectValue($test) { 
    $connection = dbConnect(HOST, USERNAME, PASSWORD, DATABASE); 
    $query = "SELECT * FROM pans where value = '$test'"; 
    $results = @mysql_query($query, $connection); 
    $value = mysql_fetch_assoc($results); 

    return $value; 
} 


$val = selectValue('abcde'); 

echo $val['something']; 
2

당신은 함수에서 값을 반환 할 수 있습니다. 그러나 전역은 더 이상 예술 수준이 아니므로 사용해서는 안됩니다.

0

반환 값

return $value 

또는 globals를 사용 : 나는 당신을 위해 그것을 다시 썼다 여기에 -