未定义的变量

-4 php variables xdebug

我已经定义了2个变量,包括联系人和衬衫.正如你所看到的那样,他们也在标题中.我仍然得到两个变量都未定义的消息.

我收到此错误消息:

(!)SCREAM:忽略(!)的错误抑制

注意:未定义的变量:第17行的C:\ wamp\www\Test\shirts4mike\inc\header.php中的部分

调用堆栈#TimeMemoryFunctionLocation 10.0003243592 {main}()..\index.php:0

20.0006246920 include('C:\ wamp\www\Test\shirts4mike\inc\header.php')..\index.php:3">

第18行也是如此.

shirts.php:

     <?php
            $pageTitle = "Mike's Full Catalog of Shirts";
            $section = "shirts";
            include('inc/header.php'); ?>

                    <div class="section page">
                            <h1>Mikes&rsquo;s Full Catalog of Shirts</h1>
                    </div>

            <?php include ('inc/footer.php'); ?>
Run Code Online (Sandbox Code Playgroud)

contact.php:

<?php
    $pageTitle = "Contact Mike";
     $section = "contact";
     include('inc/header.php'); ?>

           <div class="section page">

           <h1>Contact</h1>

           </div>


<?php include ('inc/footer.php'); ?>
Run Code Online (Sandbox Code Playgroud)

header.php:

<html>
        <head>
                <title> <?php echo $pageTitle ?></title>
                <link rel="stylesheet" href="css/style.css" type="text/css">
                <link rel="stylesheet" href="http://fonts.googleapis.com/css?family=Oswald:400,700" type="text/css">
                <link rel="shortcut icon" href="favicon.ico">
        </head>
        <body>

                <div class="header">

                        <div class="wrapper">

                                <h1 class="branding-title"><a href="./">Shirts 4 Mike</a></h1>

                                <ul class="nav">
                                        <li class="shirts <?php if ($section == "shirts"){ echo "on"; } ?>"><a href="shirts.php">Shirts</a></li>
                                        <li class="contact <?php if ($section == "contact"){ echo "on"; } ?>"><a href="contact.php">Contact</a></li>
                                        <li class="cart"><a href="#">Shopping Cart</a></li>
                                </ul>

                        </div>

                </div>

                <div id="content">
Run Code Online (Sandbox Code Playgroud)

SDC*_*SDC 5

当您SCREAM在这样的PHP错误消息中看到时,它是由于以下情况:

  1. 您已安装PHP的xDebug扩展.
  2. xDebug配置为防止错误抑制.
  3. 您的PHP代码试图使用@符号或其他错误抑制机制来抑制错误消息,xDebug正在覆盖它.

xDebug是一个PHP扩展,旨在帮助调试PHP程序.它通常不应安装在生产系统上; 仅限于开发系统.

xDebug有一个名为"Scream"的设置,旨在防止错误被抑制.这又适用于开发系统.开发人员可能希望在正常情况下抑制错误,但在调试时查看这些错误很有用.所以scream设置会覆盖PHP隐藏错误消息的所有常规方法.这对于调试很有用,但在生产系统上却很糟糕.

xDebug永远不应安装在面向公众的生产服务器上,因此如果它描述了您的系统,则应将其删除,或要求将其删除.这可能就像修改PHP.ini文件以删除对xDebug的引用一样简单(虽然这只会禁用扩展而不是卸载它).

如果它已安装且您无法对其进行任何操作,那么您需要找到一个不在生产系统上安装开发工具的更好的Web主机.


说完所有这些,如果你收到消息$section is undefined,那么它确实意味着代码中需要修复的错误.

header.php当包含它时,错误发生在index.php.

你已经向我们展示了这两个,shirts.php并且contact.php两者都设置$section正确.你没有向我们展示index.php,但我猜它包含header.php的方式与其他方式相同,但$section不像其他人那样设置.

因此,您可以通过编辑来修复错误,index.php以便它$section以与其他页面相同的方式设置.即使它只是将其设置为空白字符串,这足以修复错误.

我希望有所帮助.