为什么在php4或php 5中使用构造函数?

时间:2013-11-21 13:38:05

标签: php construct

这是一些代码。我从php选集第1部分开始。它是php 4代码,因此使用类名构造函数。

要实验我删除了构造函数,但它返回了相同的结果。 那么为什么我在没有它的情况下得到相同的结果时会使用构造函数? 抱歉我的英文。

<?php
// Page class
class Page {
  // Declare a class member variable
  var $page;
  // The constructor function
  function Page()
  {
    $this->page = '';
  }

  // Generates the top of the page
  function addHeader($title)
  {
    $this->page .= <<<EOD
<html>
<head>
<title>$title</title>
</head>
<body>
<h1 align="center">$title</h1>
EOD;
  }
  // Adds some more text to the page
  function addContent($content)
  {
    $this->page .= $content;
  }

  // Generates the bottom of the page
  function addFooter($year, $copyright)
  {
    $this->page .= <<<EOD
            <div align="center">&copy; $year $copyright</div>
</body>
</html>
EOD;
  }

  // Gets the contents of the page
  function get()
  {
    return $this->page;
  }
}// END OF CLASS


// Instantiate the Page class
$webPage = new Page();
// Add the header to the page
$webPage->addHeader('A Page Built with an Object');
// Add something to the body of the page
$webPage->addContent("<p align=\"center\">This page was " .
  "generated using an object</p>\n");
// Add the footer to the page
$webPage->addFooter(date('Y'), 'Object Designs Inc.');
// Display the page
echo $webPage->get();
?>

2 个答案:

答案 0 :(得分:1)

将字符串连接到page实例var。在构造函数中,将其设置为空字符串。如果删除构造函数$this->page,则为NULL 但仍然

NULL."some string"也适用于php。 这就是为什么你得到相同的结果。

TL; DR

你的特定构造函数是无用的。

答案 1 :(得分:0)

我并不完全理解你的意思,但是对于我的理解,构造函数是用于创建类的。但是您不需要每次都创建构造函数,因为它具有默认值。 创建新类时,默认构造函数是空构造函数(不包含参数)

但是如果你想创建包含参数的类,比如你想创建通过URL发起的网页类,那么你可以创建这样的构造函数

      class Page {
      // Declare a class member variable
      var $page;
      // The constructor function
         function Page($url)
      {
        ......
      }
    }

像这样的东西