gpt4 book ai didi

php - 是否可以将变量跟踪回其 extract() 函数?

转载 作者:搜寻专家 更新时间:2023-10-31 20:49:09 26 4
gpt4 key购买 nike

我正在使用 Drupal 主题,我看到很多变量看起来像是用 extract() 创建的。是否可以回溯并查看该数组的位置?

最佳答案

我认为您指的是传递给模板文件的变量,这些变量实际上是从数组中提取的。

在 Drupal 7 中执行此操作的代码在 theme_render_template() 中.

function theme_render_template($template_file, $variables) {
extract($variables, EXTR_SKIP); // Extract the variables to a local namespace
ob_start(); // Start output buffering
include DRUPAL_ROOT . '/' . $template_file; // Include the template file
return ob_get_clean(); // End buffering and return its contents
}

函数从theme()调用,它执行以下代码。

// Render the output using the template file.
$template_file = $info['template'] . $extension;
if (isset($info['path'])) {
$template_file = $info['path'] . '/' . $template_file;
}
$output = $render_function($template_file, $variables);

$render_function 默认设置为 'theme_render_template',但是它的值是用下面的代码设置的(在 theme() 中) .

// The theme engine may use a different extension and a different renderer.
global $theme_engine;
if (isset($theme_engine)) {
if ($info['type'] != 'module') {
if (function_exists($theme_engine . '_render_template')) {
$render_function = $theme_engine . '_render_template';
}
$extension_function = $theme_engine . '_extension';
if (function_exists($extension_function)) {
$extension = $extension_function();
}
}
}

关于php - 是否可以将变量跟踪回其 extract() 函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10035111/

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