gpt4 book ai didi

php - 是否可以将传递函数传递给包含的文件?

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:08:21 24 4
gpt4 key购买 nike

我有一个带有构建 View 功能的 View 类

class view {
//...
public function build() {
$view = $this;
$data = $this->resources->data;

function s($value) {
return \classes\tools\html\html::specialChars($value);
}

require $this->viewFile;
}
//...
}

以及查看一些查看文件

<?php var_dump($view);
// works fine, variables passed ok ?>

<?= s($data->someUnsafeString) ?>
<?php //Fatal error: Call to undefined function s() ?>

我可以在每个 View 文件中定义函数 s,但我真的不想那样做。

我可以将函数作为变量传递 $s=function(){..} 但我不希望太过分

我可以直接在 View 中调用静态函数,但即使这样也比我想要的更冗长:

<?= html::s($data->someUnsafeString) ?>

这可能吗?或任何其他建议?

最佳答案

如果您的项目有一个Front Controller(一个文件 - 入口点),
然后您可以在此文件中或 required(#require) 中的公共(public)命名空间中声明您的函数。

普通命名空间是没有命名空间的代码或者

namespace {
function s() {
}
}

关于php - 是否可以将传递函数传递给包含的文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26950349/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com