PHP Yanıt yok Sayı

4 Cevap php

Ben görüntülemek almaya çalışıyorum ama ne olursa olsun ben bunu nasıl ben sadece herhangi bir tepki ya da hata alamadım bu kod parçası var.

<?php
$day = array("Lunes","Martes","Miércoles","Jueves","Viernes","Sábado","Domingo");
//$month[]= array("Enero","Febrero","Marzo","Abril","Mayo","Junio","Julio","Agosto","Septiembre","Octubre","Noviembre","Diciembre");

function today(){
    $d = date("N");
    switch ($d){
        case 1: 
            echo $day[1];
            break;
        case 2:
            echo $day[2];
            break;
        case 3:
            echo $day[3];
            break;
        case 4:
            echo $day[4];
            break;
        case 5:
            echo $day[5];
            break;
        case 6:
            echo $day[6];
            break;
        case 7:
            echo $day[7];
            break;
    }
} 
today();
?>

Herkes yapıyor olabilir ve fark edilmeyen hiçbir bariz bir hata görebiliyor musunuz?

4 Cevap

Global değişkenleri kullanarak önlemek için (ki often-times a bad idea). Sen sadece işlevi için değişken iletebilirsiniz.

Böylece söz konusu işlev bildirimi değiştirin

function today($day)

ve son işlev çağrısı

today($day);

Iki $ günün aynı olmadığını unutmayın.

function today($day) sadece bu fonksiyon içinde her gün $ değişken bu argüman olarak geçirilen değerini içerecek söylüyor. Bu ilan not dizidir. Bu nedenle fonksiyon kapsamında $ günlerin hepsi ile birlikte, istediğiniz ne olursa olsun geçerli php değişken adına bu değiştirebilir ve sonuç aynı kalacaktır.

Eğer işlevi önce ilan Array $ günde today($day) söyleyerek geçiren today.

Sen eklemeniz gerekir

global $day;

Senin fonksiyonun üstünde.

variable scoping for more. In addition to that, as The.Anti.9 mentioned üzerine PHP manuel kontrol, sadece yapabileceği:

$days = array("Lunes","Martes","Miércoles","Jueves","Viernes","Sábado","Domingo");
function today() {
    global $days;
    echo $days[date("N")-1];
}
today();

date('N') size haftanın gününü döndürür beri (1-7) aynı zamanda bir 1-tabanlı dizin dizi oluşturabilirsiniz:

$day = array(1 => "Lunes","Martes","Miércoles","Jueves",
                  "Viernes","Sábado","Domingo");
echo $day[date('N')];

Peki ben bir hata görmüyorum, ama sadece yapabileceği

echo $day[date('N')-1];

O dizi indisleri 0 1 değil başlamak hatırlamak gerekiyor. hiçbir 7. gidecekseniz çünkü Yani $ günü [7] size index hata verecektir.

EDIT:

paoloa bergantino belirttiği gibi. Sen $ günlük değişken küresel yapmak gerekir, ya da işlev kapsamı içine koyabilirsiniz.