变量在函数外部不可见

时间:2013-05-21 22:01:38

标签: php html mysql sql

我已经编写了一个查询来从我的数据库中获取客户信息但是我想在另一个页面上使用它。我不想复制并粘贴到其他页面来使用它。

我查看了一个函数,但我不知道如何从函数中获取变量。

这是我目前的职能:

function getCustomer($customerid) {

$getcustomer = mysql_query("SELECT * FROM hire_customers WHERE id='".$customerid."'");
$fetch = mysql_fetch_assoc($getcustomer);

$cust_firstname = $fetch['firstname'];
$cust_lastname =  $fetch['lastname'];
$cust_address =   $fetch['address'];
$cust_town =      $fetch['town'];
$cust_postcode =  $fetch['postcode'];
$cust_cont1 =     $fetch['contact1'];
$cust_number1 =   $fetch['contactnumber1'];
$cust_cont2 =     $fetch['contact2'];
$cust_number =    $fetch['contactnumber2'];
$cust_email =     $fetch['email'];
$cust_idform1 =   $fetch['idform1'];
$cust_idnfo1 =    $fetch['idinfo1'];
$cust_idform2 =   $fetch['idform2'];
$cust_idinfo2 =   $fetch['idinfo2'];
$cust_enterdby =  $fetch['enteredby']; 

}

这是我的客户页面

getCustomer($customerid);

echo $cust_firstname;

但没有任何回应。

我是否需要查看类或对象才能执行此操作?我的功能出错了吗?

我想做的是在一个地方拥有一个包含我所有客户功能(更新,选择等)的PHP文件。

4 个答案:

答案 0 :(得分:4)

我认为您应该返回$fetch,然后将其作为函数外部的变量进行访问。

function getCustomer($customerid) {
    $customerid = mysql_real_escape_string($customerid);
    $getcustomer = mysql_query("SELECT * FROM hire_customers WHERE id='".$customerid."'");
    $fetch = mysql_fetch_assoc($getcustomer);
    return $fetch;
}

$data=getCustomer($customerid);

echo data['firstname'];

答案 1 :(得分:3)

这应该让你开始:

function getCustomer($customerid) {

    $getcustomer = mysql_query("SELECT * FROM hire_.. etc");
    $customer_data = mysql_fetch_assoc($getcustomer);

    return $customer_data; // return here
}

$customer = getCustomer($customerid);

$cust_firstname = $customer['firstname'];

答案 2 :(得分:1)

您需要从函数return $variable;

返回一个值

答案 3 :(得分:0)

在您的代码中,变量$cust_firstname;仅在该函数内可见。

请阅读:PHP variable scope

这样做可以减少Web服务器上的内存使用量 - 当函数结束时 - 变量被破坏并释放内存。

基本上 - 你必须以某种方式return这个价值。 Dave Chen在上面/下面写了很好的答案,你可以使用他的代码。


顺便说一下,您可以使用extract();功能并减少代码大小并节省大量时间。

它的工作原理如下:

$fetch = mysql_fetch_assoc($getcustomer);

extract($fetch, EXTR_PREFIX_ALL, "cust_"); // creates variables from associative array

echo $cust_firstname; // magic! :)