php切换代码错误

Jef*_*eff 1 php switch-statement

我每次在index.php上回应这个错误时都会出错

下面是我的开关代码,因为我使用的是php动态网站,因此每次调用不同的php时我都会使用switch来更改数据.

<?php
function title_switch()
{
    $var = (isset($_GET['page']) && !empty($_GET['page'])) ? $_GET['page'] : 'home';
    switch ($var) {
        case 'home':
            $a['title']   = " &#187; Home";
            $a['meta_d']  = "This page is about my site!";
            $a['meta_k']  = "something, somethingelse";
            $a['slider1'] = "<script type=\"text/javascript\" src=\"./js/jquery.easing.1.3.js\"></script>\n";
            $a['slider2'] = "<script type=\"text/javascript\" src=\"./js/tms-0.3.js\"></script>\n";
            $a['slider3'] = "<script type=\"text/javascript\" src=\"./js/tms_presets.js\"></script>\n";
            $a['main']    = "<script type=\"text/javascript\" src=\"./js/script.js\"></script>\n";
            $a['pageid']  = "page1";
            $a['slider']  = "slide";
            break;
        case 'company':
            $a['title']  = " &#187; Company";
            $a['meta_d'] = "This page is about my site!";
            $a['meta_k'] = "something, somethingelse";
            $a['all']    = "<script type=\"text/javascript\" src=\"./js/all.js\"></script>\n";
            $a['pageid'] = "page2";
            $a['slider'] = "banner";
            break;
        default:
            $a['title']  = " &#187; HTTP 404 - Page Not Found";
            $a['meta_d'] = "";
            $a['meta_k'] = "";
            break;
    }
    return $a;
}
$details = title_switch();
?>  
Run Code Online (Sandbox Code Playgroud)

这是第21行的index.php

<?php echo $details['all']; ?>
Run Code Online (Sandbox Code Playgroud)

如果调用home.php它将显示以下错误

注意:未定义的索引:全部在第21行的C:\ wamp\www\site\index.php中调用堆栈

时间记忆功能位置

1 0.0035 258968 {main}()..\index.php:0

如果我打电话给company.php它不会显示任何错误...

我可以知道哪里出错了吗?有点混淆......

例如:如果我打电话给www.example.com/company它没有显示错误,但如果我打电话给www.example.com则显示错误.

我想要这个代码

<?php echo $details['all']; ?>
Run Code Online (Sandbox Code Playgroud)

仅在www.example.com/company上显示,如果调用www.example.com则不会显示.

里面的代码:

<?php echo $details['all']; ?>
Run Code Online (Sandbox Code Playgroud)

case 'company':
        $a['title']  = " &#187; Company";
        $a['all']    = "<script type=\"text/javascript\" src=\"./js/all.js\"></script>\n";
Run Code Online (Sandbox Code Playgroud)

希望这能为每个能帮助我解决错误的人提供更清晰的画面.谢谢.

Chr*_*oft 5

$a['all']只有当switch($var)等于时才被设置'company'.你需要在每个案例中设置它.

在您的交换机内部,您可以设置$a['all']为空值,因此PHP至少可以找到索引.一个简短的例子:

switch ($var) {
    case 'home':
        $a['all'] = '';
    case 'company':
        $a['all'] = '<script type=\"text/javascript\" src=\"./js/all.js\"></script>\n';
    default:
        $a['all'] = '';
}
Run Code Online (Sandbox Code Playgroud)