2010-03-22 4 views
0

Donc, je ne suis évidemment pas un très bon programmeur. Je l'ai écrit cette petite fonction:PHP Fonction paramètres - problème avec var n'étant pas réglé

function dispAdjuggler($atts) { 
extract(shortcode_atts(array(
    'slot' => '' 
), $atts)); 

$adspot = ''; 
$adtype = ''; 

// Get blog # we're on 
global $blog_id; 
switch ($blog_id) { 
    case 1: 
     // root blog HOME page 
     if (is_home()) { 
      switch ($slot) { 
       case 'top_leaderboard': 
        $adspot = '855525'; 
        $adtype = '608934'; 
       break; 
       case 'right_halfpage': 
        $adspot = '855216'; 
        $adtype = '855220'; 
       break; 
       case 'right_med-rectangle': 
        $adspot = '858222'; 
        $adtype = '613526'; 
       break; 
       default: 
        throw new Exception("Ad slot is not defined"); 
       break; 
      } 

Quand je référence à la fonction sur une page comme ceci:

<?php dispAdjuggler("top_leaderboard"); ?> 

Le commutateur est de lancer l'exception par défaut. Qu'est-ce que je fais mal ici?

Merci!

Répondre

2

Sans savoir ce que les shortcode_atts() fonction fait, il semble que vous passer dans le tableau pour définir des valeurs par défaut (« créneau horaire » = chaîne vide), qui extrait() convertit ensuite en $short = ''

extract(shortcode_atts(array(
    'slot' => '' 
), $atts)); 

n'est-ce pas? Maintenant que $ slot est la chaîne vide, il ne correspondra à aucun des cas dans votre commutateur, et donc le cas par défaut est déclenché, ce qui renvoie l'exception "L'espace publicitaire n'est pas défini".

+0

me => duh Merci! :) – Marty

Questions connexes