调用包含数组的函数

时间:2010-09-10 11:40:49

标签: php

请查看我的代码:

function getShopConfig()
{

$sql = "SELECT sc_name, sc_address, sc_phone, sc_email, sc_shipping_cost, sc_order_email, cy_symbol, sc_currency
        FROM kol_shop_config , kol_currency
        WHERE sc_currency = cy_id";
$result = dbQuery($sql);
$row    = dbFetchAssoc($result);

if ($row) {
    //extract($row);

 $shopConfig = array('name'           => $row['sc_name'],
                        'address'        => $row['sc_address'],
                        'phone'          => $row['sc_phone'],
                        'email'          => $row['sc_email'],
                        'sendOrderEmail' => $row['sc_order_email'],
                        'shippingCost'   => $row['sc_shipping_cost'],
                        'currency'       => $row['sc_currency']);
}
return $shopConfig;  

}

然后我称之为,

<td colspan="4" align="right"><?php getShopConfig(); echo $shopConfig['name'];?></td>

但没有显示任何内容..错误在哪里?请帮忙。

注意:两者都在同一页面中。 dbQuery()和dbFetchAssoc()函数是预定义的,之前已正常工作。如果我在函数内部回显它然后调用它然后它正常工作。

4 个答案:

答案 0 :(得分:7)

<?php
    $shopConfig = getShopConfig();
    echo $shopConfig['name'];
?>

您必须先将返回的数组分配给某个($shopConfig)变量。

答案 1 :(得分:1)

 <?php $shopConfig = getShopConfig(); ?>

 <td colspan="4" align="right"><?php echo $shopConfig['name'];?></td>

答案 2 :(得分:0)

您只返回值,但不会在任何变量中捕获它。

尝试

<?php $shopConfig=getShopConfig(); echo $shopConfig['name'];?>

答案 3 :(得分:0)

您的函数正在返回一个值。您必须将此值分配给变量,然后然后从该变量访问您想要的元素:即

<td colspan="4" align="right"><?php $configs = getShopConfig(); echo $configs['name'];?></td>

您要做的是使用已在函数中声明的变量$shopConfig。这是一个局部变量,在函数外部不存在。如果需要,可以创建全局$shopConfig,但这是一个冗余解决方案,因为您从函数返回数组。您应该避免全局变量,因为它会使您的代码更难以理解和维护。

然而,通过直接访问返回值,有一种简单的方法(也许你只是使用函数来获取元素'name'):即

<td colspan="4" align="right"><?php echo $getShopConfig()['name'];?></td>