2010-09-10 5 views
0

S'il vous plaît regarder mon code:appel d'une fonction contenant un tableau

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; 

} 

alors im appeler comme,

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

mais rien est affiché .. où est l'erreur ?? aidez s'il vous plaît.

note: les deux sont dans la même page. Les fonctions dbQuery() et dbFetchAssoc() sont prédéfinies et ont fonctionné correctement avant. si je fais écho à l'intérieur de la fonction, puis appelez-la puis son fonctionnement correctement.

+0

L'erreur est que la La valeur de retour de la fonction 'getShopConfig()' n'est stockée nulle part. La variable '$ shopConfig' n'a rien à voir avec la fonction' getShopConfig() '. Pour un correctif, voir la réponse de hsz ci-dessous. – TRiG

Répondre

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

Vous devez attribuer tableau retourné à certains ($shopConfig) variable avant.

+0

Thanxx .. problème résolu .. – champ

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

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

Vous ne renvoyez la valeur que dans une variable.

Essayez

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

Votre fonction renvoie une valeur. Vous devez attribuer cette valeur à une variable puis alors accéder à l'élément que vous voulez de cette variable: à savoir

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

Qu'est-ce que vous essayez de faire est d'utiliser la $shopConfig variable qui a été déclaré dans la fonction. Ceci est une variable locale et n'existe pas en dehors de la fonction. Vous pouvez faire un $shopConfig global si vous voulez, mais c'est une solution redondante puisque vous renvoyez le tableau de la fonction. Vous devriez éviter les variables globales car cela rend votre code plus difficile à comprendre et à maintenir.

Il est, cependant, d'une manière sténographique de le faire (peut-être vous n'utilisez la fonction pour obtenir cet élément 'name') en accédant à la valeur de retour directement: à savoir

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