我有一段我想要显示的代码,但不管我怎么做,我都得不到任何响应或错误。
<?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();
?>有没有人能看到我可能犯的任何明显的错误而没有注意到?
发布于 2009-02-07 04:33:58
避免使用全局变量(即often-times a bad idea)。您可以只将变量传递给函数。
因此,将函数声明更改为
function today($day) 的最后一个函数调用
today($day);请注意,这两个$day不是相同的。
function today($day)只是说明此函数中的每个$day变量都将包含作为此参数传入的值。它是,而不是你声明的数组。因此,您可以将其更改为任何有效的php变量名称,以及函数范围内的所有$days,结果将保持不变。
today($day)表示将您之前声明的Array $day传递到函数today中。
发布于 2009-02-07 04:16:31
您需要添加
global $day;在函数的顶部。
有关更多信息,请查看variable scoping上的PHP手册。除此之外,作为The.Anti.9 mentioned,您可以这样做:
$days = array("Lunes","Martes","Miércoles","Jueves","Viernes","Sábado","Domingo");
function today() {
    global $days;
    echo $days[date("N")-1];
}
today();发布于 2009-02-07 04:14:40
我看不出有什么错,但你可以
echo $day[date('N')-1];你需要记住数组索引是从0开始的,而不是从1开始的,所以$day7会给你索引错误,因为没有7。
编辑:
正如paoloa bergantino指出的那样。您需要使$day变量成为全局变量,或者您可以将其放在函数的作用域中。
https://stackoverflow.com/questions/523113
复制相似问题