当变量不存在时,避免“未定义的索引”错误

时间:2014-02-23 20:08:05

标签: php

我有一个panel.php,其中我通过include方法加载我的不同页面。由于只有一个面板,因此必须包含消息显示系统,并且不会始终显示错误ID。

我已将以下代码添加到我的面板中,如果有任何变量'msg',则调用函数“envioMensaje”:

<?php
if ($_GET) {
    if ($_GET['msg']) {
        $id_mensaje=$_GET['msg'];
        $mensaje=envioMensaje($id_mensaje);
        echo $mensaje;
    }
}
?>

当发送消息ID时,这可以正常工作,但是当我没有发送“未定义索引:msg in ...”错误时。我也试过了:

if ($_GET) {
    if ($_GET['msg']) {
        $id_mensaje=$_GET['msg'];
        $mensaje=envioMensaje($id_mensaje);
        echo $mensaje;
    } else {
        echo"";
    }
}

还有其他一些没有结果的变化。为什么总是在寻找'msg'?可能是因为在同一份文件中我有另外一个条件要求$_GET吗? (我需要它来加载内容):

if (!$_GET) {
    include('config/shortcuts.php');
} else {    
    $directorio = $_GET['directory'];
    include('config/'.$directorio);
}

2 个答案:

答案 0 :(得分:4)

使用isset()检查变量是否存在而不抛出PHP通知。

if (isset($_GET['msg'])) {
    //then use $_GET['msg']
}

答案 1 :(得分:1)

检查

if(isset($_GET['msg'])){...}