PHP Fonksiyon parametreleri - var olan sorun ayarlı değil

2 Cevap php

Yani belli ki çok iyi bir programcı değilim. Ben bu küçük fonksiyonu yazdım:

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;
            }

Ben şöyle bir sayfada işlevine başvurmak zaman:

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

Anahtarı varsayılan istisna atıyor. Ben burada yanlış ne yapıyorum?

Teşekkürler!

2 Cevap

Eğer () sonra dönüştüren extract varsayılan değerlerini ('slot' = boş dize), ayarlamak için dizideki geçiyoruz gibi shortcode_atts () fonksiyonu, göründüğünü ne yaptığını bilmek olmadan $short = ''

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

değil mi? "Reklam alanı tanımlı değil" istisna atar, hangi şimdi $ yuvası boş dize, bu anahtarı durumlarda herhangi bir maç olmayacak, ve bu nedenle varsayılan durumda tetiklenen alır.

Eğer özü türü parametre eksik değil mi?

http://us.php.net/manual/en/function.extract.php