Variables 未定义变量
我在contact和shirts中定义了两个变量。正如你所看到的,它们也在li in标题中。但我还是得到了这样一个信息:这两个变量都未定义 我收到以下错误消息: (!)尖叫:已忽略(!)的错误抑制 注意:未定义变量:中的节 第17行的C:\wamp\www\Test\shirts4mike\inc\header.php 调用堆栈#TimeMemoryFunctionLocation 10.0003243592{main}( )..\index.php:0 20.0006246920包括('C:\wamp\www\Test\shirts4mike\inc\header.php')..\index.php:3“> 第18行也是这样 shirts.php:Variables 未定义变量,variables,xdebug,php,Variables,Xdebug,Php,我在contact和shirts中定义了两个变量。正如你所看到的,它们也在li in标题中。但我还是得到了这样一个信息:这两个变量都未定义 我收到以下错误消息: (!)尖叫:已忽略(!)的错误抑制 注意:未定义变量:中的节 第17行的C:\wamp\www\Test\shirts4mike\inc\header.php 调用堆栈#TimeMemoryFunctionLocation 10.0003243592{main}( )..\index.php:0 20.0006246920包括('C:\
<?php
$pageTitle = "Mike's Full Catalog of Shirts";
$section = "shirts";
include('inc/header.php'); ?>
<div class="section page">
<h1>Mikes’s Full Catalog of Shirts</h1>
</div>
<?php include ('inc/footer.php'); ?>
<?php
$pageTitle = "Contact Mike";
$section = "contact";
include('inc/header.php'); ?>
<div class="section page">
<h1>Contact</h1>
</div>
<?php include ('inc/footer.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">
当您在这样的PHP错误消息中看到尖叫
时,这是由于以下情况造成的:
您已经安装了PHP的xDebug扩展
xDebug配置为防止错误抑制
您的PHP代码正试图使用@
符号或其他错误抑制机制来抑制错误消息,xDebug正在覆盖该错误消息
xDebug是一个PHP扩展,旨在帮助调试PHP程序。它通常不应安装在生产系统上,而应安装在开发系统上
xDebug有一个名为“尖叫”的设置“其目的是防止错误被抑制。这也是为了在开发系统中使用。开发人员可能希望在正常情况下抑制错误,但在调试时,查看这些错误是有用的。因此,尖叫设置覆盖了PHP隐藏错误消息的所有常规方法。这对于调试很有用,但对于生产系统来说却是一件可怕的事情
xDebug永远不应该安装在面向公众的生产服务器上,因此,如果这描述了您的系统,您应该将其删除,或者要求将其删除。这可能很简单,只需修改PHP.ini文件以删除对xDebug的引用(尽管这只会禁用扩展,而不是取消安装扩展)
如果它已经安装,而您对此无能为力,那么您需要找到一个更好的web主机,它不会在生产系统上安装开发工具
话虽如此,如果您收到的消息是,$section未定义
,那么它确实意味着代码中存在需要修复的错误
当从index.php
中包含该错误时,该错误出现在header.php
中
您已经向我们展示了shirts.php
和contact.php
,它们都正确设置了$section
。您没有向我们展示index.php
,但我猜它包括header.php
,方式与其他方法相同,但没有像其他方法一样设置$section
因此,您可以通过编辑index.php
来修复该错误,以便它以与其他页面相同的方式设置$section
。即使它只是将其设置为空白字符串,也足以修复错误
我希望这会有所帮助。您查看的文件不正确
堆栈跟踪表明包含两个文件以获取此特定错误(按相反顺序):
inc\header.php
index.php
在问题中,index.php
没有显示,但很可能您有:
<?php
$pageTitle = "something";
include('inc/header.php');
请在问题中包含代码。特别是因为你显然链接到了一个私人粘贴…欢迎来到StackOverflow。请提供一个尽可能小的示例,同时仍演示您的问题。此外,它通常有助于包含准确的错误消息。。。请在问题中包含代码。什么变量未定义?在什么档案里?另外,我们无法查看您的shirts.php
,它是私有的。请将代码放在问题中,而不是放在pastebin上。只需猜测:!@!=@!尽管您通常不应该使用@来抑制错误。。。。更好的做法是修复错误xdebug也实现了这一点,但我认为xdebug没有那个错误头。我怀疑任何网络主机使用wamp(阅读错误消息中的路径):)非常感谢。我现在明白了。我在索引中添加了$section,解决了这个问题。正如你可以告诉我的,我在这方面很新,我解决了这个问题,但会关注xdbug和你的其他观点。再次感谢+1我实际上没有意识到尖叫也是它自己单独的延伸;我只把它看作xDebug的一部分。