2010-11-21 28 views
1

Değerine göre geçiş yaptığımda çalışmıyor İşte bir php işlevi ve mükemmel çalışıyor.PHP İşleviyle İlgili Yardım Gerekiyor,

$values = array(

     'php' => 'php hypertext processor', 

     'other' => array(
      'html' => 'hyper text markup language', 
      'css' => 'cascading style sheet', 
      'asp' => 'active server pages', 
     ) 

); 


function show($id='php', $id2='') { 

    global $values; 

    if(!empty($id2)) { 
     $title = $values[$id][$id2]; 
    } 
    else { 
     $title = $values[$id]; 
    } 

    echo $title; 

} 

ben bu <?php show(other,asp); ?> aktif sunucu sayfaları görüntüler ve çalıştığını, ama bu şekilde yapmak zaman O çalışmıyor

<?php 

$lang = 'other,asp' 

show ($lang); 

?> 

bir hatayı gösterir., Bana yardım edin çalıştırdığınızda burada

PS: i değerini tek değişkeni (hayır virgül)

+0

teşekkür ederiz. Sağlanan her yöntem iyi çalıştı, cevabını doğru cevaplamak için kimin cevap verdiğini bilmiyorum, Lütfen bana yardım edin, Kimin cevabı doğru olarak işaretlemeli - Roccos 0 saniye önce düzenle –

cevap

3

Eğer belki patlayabilir kullanmayı deneyin, sende bir şekilde geçmek isterseniz: cevaplar için herkes

function show($id='php') { 

    global $values; 
    $ids = explode(',',$id); 

    if(!empty($ids[1])) { 
     $title = $values[$ids[0]][$ids[1]]; 
    } 
    else { 
      $title = $values[$ids[0]]; 
    } 

    echo $title; 

} 
0

Sen nasıl yeniden yazma konusunda ... yerine gerekli ikisinden biri dize iade geçirirseniz O inşaat yo ur işlevi yerine bunları işlemek için?

3

Tek bir dizede iki değişken geçiremezsiniz.

$lang1 = 'other'; 
$lang2 = 'asp'; 

show($lang1, $lang2); 
2

PS: Sizin dize $lang iki vairables bölünmüş gerekiyor i değerini tek değişkeni (hayır virgül)

Sen değerine $lang atamayacaksanız 'geçirirseniz O inşaat Diğer, asp ', ve sonra $lang değişkenini tek başına show işlevine geçirerek. $values dizinizde "other, asp" adlı bir anahtar yoktur.

Dize içinde virgül olması, parametreleri ayırdığınız anlamına gelmez; bu, tek bir dize değeri ilettiğiniz anlamına gelir. Sen "tek değer içeren bir değişken geçirmek" için varsa, ya da birden çok parametre değerleri için böyle yapmak :

 


$lang = "other"; 
$sub_lang = "asp"; 
show ($lang, $sub_lang); 


2

anahtar "other,asp"$values mevcut değildir çünkü başarısız olur. Başka bir deyişle

, aşağıdaki değerlendirmek için çalışıyor:

$title = $values['other,asp']; 

PS, oldukça "çalışmıyor" diyerek daha gerçek bir hatayı sağlamak için her zaman yararlıdır.

+0

Gerçek hata bir şey göstermeyecek, thats all ... –

+0

Ama senin sorunun "diyor ama bu şekilde bir hata gösteriyor" diyor. – Hamish

2

Bunun sebebi, $ lang'nin tek bir argüman olarak yorumlanacağından, $ id2 'other, asp' olacaktır. Sen ayrı fonksiyonu içine geçmesi gerekiyor:

$id1 = 'other'; 
$id2 = 'asp'; 

show($id1,$id2); 
İlgili konular