繁体   English   中英

PHP如何返回调用函数(以避免函数作用域)

[英]PHP how can i return call function (to avoid function scope)

我有两个文件:

的template.php:

<div><?php echo $myVar; ?></div>

调节器

class MyClass extends Base {
    public function view() {
        $myVar = 'hello world';
        $this->loadTemplate('main');
    }
}
abstract class Base {
    public function loadTemplate($template) {
        require_once("templates/$template.php");
    }
}

但这不能正常工作,因为require处于loadTemplate函数的范围内,如何在loadTemplate中返回对require函数的调用? 我希望使用$ this-> loadTemplate()之类的单个函数将需求包含在view()范围中; 而不使用require_once($ this-> getTemplatePath())

任何想法?

你不能 通常,您要尝试通过传递带有变量的数组( $this->loadTemplate(array('myVar' => 'hello world')) ),然后在loadTemplate方法中调用extract($vars)来实现。

只需使用类成员来访问视图脚本中的变量

class MyClass extends Base
{
    public function view()
    {
        $this->myVar = 'hello world';
        $this->loadTemplate('main');
    }
}

abstract class Base
{
    public function loadTemplate($template)
    {
        require_once("templates/$template.php");
    }
}

模板 main.php

Output: <?= $this->myVar ?>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM