Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/272.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
检查未定义php变量的最佳实践?_Php_Variables_Undefined - Fatal编程技术网

检查未定义php变量的最佳实践?

检查未定义php变量的最佳实践?,php,variables,undefined,Php,Variables,Undefined,在菜单页面上,我有一个 class='$ActiveAbout' 在我定义的另一页上 $ActiveAbout = 'active' 我还有$ActiveSite,$ActiveHome,$ActiveAdd,等等,所以一次只使用其中一个。执行此操作将导致通知:未定义变量:ActiveSite消息 到目前为止,我可以看到两种解决方案 $ActiveSite = $ActiveSite ?? ''; if(!isset($ActiveSite)) {$ActiveSite = '';} 这

在菜单页面上,我有一个

class='$ActiveAbout'
在我定义的另一页上

$ActiveAbout = 'active'
我还有
$ActiveSite
$ActiveHome
$ActiveAdd
,等等,所以一次只使用其中一个。执行此操作将导致通知:未定义变量:ActiveSite消息

到目前为止,我可以看到两种解决方案

$ActiveSite = $ActiveSite ?? '';

if(!isset($ActiveSite)) {$ActiveSite = '';}
这些是我最好的选择吗?这是一个更好的方式来查看它是否未设置

目前正在使用PHP5.6,但将转到PHP7

其他信息:

这要容易得多:


  • 然后在home.php上,我会使用:$AboutHome='active',然后在菜单页面上,它会填充该变量,而另外两个变量则是空的,因为它们没有设置,因此它们不会获得“active”样式。

    使用单个变量
    $active
    ,稍后您将对其进行测试

    $active = 'about';
    ...
    <div id='about' <?php if ($active == 'about') echo "class='active'"; ?>>
    

    只需在开始时初始化所有变量,然后分配需要激活的变量。为什么不只使用单个变量
    $active
    ,将其设置为
    about
    site
    ,等等?这样做要容易得多:
  • 然后在home.php上,我会:$AboutHome='active',然后在菜单页面上,它会填充该变量,而另外两个变量则是空的,因为它们没有设置,因此它们不会得到'active'样式。实际上,如果您将菜单数据保存在某种数组中,那么您就可以在循环中为菜单生成代码,这会容易得多。然后,您只需检查当前项目是否也在一个地方引用了当前页面。我将在代码中做一个小更改:
    
    
    <div id='about' class='<?php if ($active == 'about') echo "active"; ?>'>