PHP有问题包括标题

时间:2011-11-03 23:20:31

标签: php html

我是PHP的新手,遇到了一个小问题。 我有一个名为info.php的php页面,并使用一个名为components.php的包含的php文件来拉取其中包含html代码的函数,然后在page.php(以及其他页面)中使用。我将标题放在一个名为的变量中$ title然后在我的components.php中引用,但由于某种原因,components.php无法识别为标题。这是代码,感谢所有帮助(我知道我对问题的描述很难。如果您需要更多信息,请告诉我)

page.php文件

<?php 
   include("components.php"); 
   $title = "This is my page Title!";
   echo writeHeader();
?>

components.php

<?php
   function writeHeader()
   {
      echo <<<HED    
        <html>
         <head>
           <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
           <title>
      HED;

      echo $title;
      echo <<<HED

           </title>
      HED;
   }
?>

3 个答案:

答案 0 :(得分:4)

良好的解决方案:将$title作为参数传递给他。

不太好的解决方案:将$title声明为

   global $title

在函数内使其属于全局范围。

不将其声明为global,它是一个全新的变量。

总结评论:

  • 永远不要使用全球!函数/方法所依赖的任何东西都应该作为参数传递。

  • 永远不要访问$ _GLOBALS!同样的原因。

  • 禁用register_globals!不应将GET参数自动注入您的应用程序。

  • 启用最高错误级别!以这种方式编写应用程序,不会打印错误或警告。

不幸的是,my question regarding PHP newbie practices已关闭。但它提供了一些有用的提示。

如果您喜欢,请点击重新打开链接。

答案 1 :(得分:4)

变量具有范围。声明它时,除非它是全局的,否则不能在另一个范围内使用它。为此,您必须使用参数

将其传递给其他范围

您的代码应该是这样的:

page.php文件

<?php 
   include("components.php"); 
   $title = "This is my page Title!";
   echo writeHeader($title);
?>

components.php

<?php
   function writeHeader($title)
   {
      echo <<<HED    
        <html>
         <head>
           <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
           <title>
      HED;

      echo $title;
      echo <<<HED

           </title>
      HED;
   }
?>

答案 2 :(得分:1)

在您的代码示例中,您可以在两个位置调用echo函数:

  1. 在您的page.php文件中:此不执行任何操作
  2. 在你的component.php中:这个打印文本
  3. 最佳做法是将打印件分组为一个名为“视图”的组件。 如果你的视图是名为component.php的文件,那么你应该删除第一个echo。