【问题标题】:Passing an object to a file included by the same object将对象传递给同一对象包含的文件
【发布时间】:2014-07-01 22:12:36
【问题描述】:

我正在创建一个 PHP 模板引擎。我在这里遇到了一个问题,我想要一些关于如何解决这个问题的建议。

我正在尝试在同一对象包含的文件上使用对象。我一直在尝试调用 $Views->get_link("GitHub");但不幸的是,它说找不到变量。我似乎找不到让它工作的方法。

代码如下:

button.view.php:

<a class="btn btn-lg btn-success " href="<?php $Views->get_link("GitHub"); ?>">

views.php:

function load_view($view) {

    $viewpath = ZEAM_VIEW_BASEDIR.'/'.$view.ZEAM_VIEW_SUFFIX;

    if (file_exists($viewpath)) {

        include($viewpath); 

    }

}

对象启动器:

// Okay, we're ready to start it up!

require('core.php');

$ZeamEngine = New Zeam(true);

require('modules.php');
require('views.php');

$Modules = New Modules($ZeamEngine);
$Views = New Views($ZeamEngine);

// Custom code for this

$Modules->load_module("ZeamRequisChecker");
$Views->add_link("GitHub", "http://github.com/Alphasquare/Zeam/");

我该怎么做?如果需要更多信息或文件,请询问。

【问题讨论】:

  • 真的有必要吗?
  • @Sven 您的评论无关紧要,并不反映信誉得分为 13,639 的所谓可信用户。你试图阻止提出这个问题的人学习和创造事物;这不是欢迎新人加入 Stack Overflow 的好方法。
  • @Nathan,我假设 sven 说了一些关于创建模板语言的重新发明轮子,但他说的不是很有建设性的方式。尽管我的评论没有解决您的回答 sergio,但我认为查看已经可用的内容很重要,这不是要阻止您自己创建和学习,而是要了解创建模板引擎的主要问题是什么以及如何许多不同的 PHP 模板引擎已经解决了这些问题。
  • 你们不主动做不同的事吗?
  • 不,他谈到了引擎和东西的数量。

标签: php class oop object include


【解决方案1】:

如果load_view 是类Views 的方法,如果button.view.php 是包含在方法load_view 中的文件——你需要使用$this 而不是$Views

<a class="btn btn-lg btn-success " href="<?php $this->get_link("GitHub"); ?>">

http://www.php.net/manual/en/language.variables.scope.php

http://www.php.net/manual/en/language.oop5.basic.php

【讨论】:

  • 我会试试的。一分钟。
  • 好兄弟!我喜欢这个答案!作品。 @sectus
猜你喜欢
  • 1970-01-01
  • 2011-12-20
  • 1970-01-01
  • 1970-01-01
  • 2017-05-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多