PHP返回功能在页面顶部打印文本

时间:2017-08-31 13:50:43

标签: php html

当我更换'。$ content()。'用#34;测试"它打印"测试"在页面中间的正确位置。但是当我使用变量'。$ content()。'它打印"测试"在页面的左上角。 (参见课程页面中的返回)。

我已经使用了这个"返回方法"很多次,这是它第一次无法工作。

我想在脚本中使用$ content变量,但我希望输出位于正确的位置。


蒂莫


core.php中

class site {
function __construct($title,$content) {
    echo '  <html>
            <head>
            <title>'.$title.'</title>           
            <meta content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0" name="viewport" />
            <link href="core/assets/css/main.css" type="text/css" rel="stylesheet">
            </head>
            <body>  
            <header id="header">
                <div class="container">
                    <h1>DataBaas</h1>
                    <h2>Baas over je data</h2>
                </div>
            </header>
            <div class="content">
                <div class="article">
                    '.$content().'
                <div>
            </div>
            </body>     
            </html>';
    }
}
class pages {
    function home() {
    return 'Test';
    }
}

Index.php就像:

<?php
include_once("core/core.php");
$pages = new pages;
$thispage = $pages->home();
$site = new site('Home',function(){global $thispage; echo $thispage;});
?>

2 个答案:

答案 0 :(得分:1)

这应该解决它:

<?php
include_once("core/core.php");
$pages = new pages;
$thispage = $pages->home();
$site = new site('Home',function(){global $thispage; return $thispage;});
?>

不是我个人会遵循的方法......但是... ...

答案 1 :(得分:0)

即使这是对网站进行编码的错误方式,我建议您进行一些更改,例如:

interface Renderable
{
    public function render();
}

interface Page
{
    public function getTitle();
    public function getContent();
}

class Site implements Renderable
{
   private $page;

   public function addPage(Page $page)
   {
       $this->page = $page;
   }

   public function render()
   {
      echo '
         <html>
            <head>
            <title>'.$this->page->getTitle().'</title>           
            <meta content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0" name="viewport" />
            <link href="core/assets/css/main.css" type="text/css" rel="stylesheet">
            </head>
            <body>  
            <header id="header">
                <div class="container">
                    <h1>DataBaas</h1>
                    <h2>Baas over je data</h2>
                </div>
            </header>
            <div class="content">
                <div class="article">
                    ' . $this->page->getContent() . '
                <div>
            </div>
            </body>     
            </html>';
   }
}

class Home implements Page
{
   public function getTitle()
   {
      return 'Home';
   }

   public function getContent()
   {
      return 'Test';
   }
}

在你的索引中你应该有:

$site = new Site()
$site->addPage(new Home);
$site->render();

现在您已经了解了接口以及如何在方法中对实现它们的类进行了类型化。