首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >组合多个PHP函数

组合多个PHP函数
EN

Stack Overflow用户
提问于 2015-02-03 21:29:10
回答 2查看 320关注 0票数 0

我遇到了一些处理这个问题的帖子,但它们都是非常具体的,因此令人困惑。

通常情况下,组合多个函数的最佳实践是什么?出于主题化的目的,我在Drupal安装的template.php文件中使用它。

假设我有两个函数:

代码语言:javascript
复制
function mytheme_preprocess_page(&$variables){
    (...)
}

代码语言:javascript
复制
function mytheme_preprocess_page(&$vars, $hook){
    (...)
}

当我在我的文件中使用这两个函数时,我得到了致命的错误:无法重新声明mytheme_preprocess_page() (之前在( template.php )中声明的。

下面是完整的代码:

代码语言:javascript
复制
function mytheme_preprocess_page(&$variables){

    // Add information about the number of sidebars.
    if (!empty($variables['page']['sidebar_first']) && !empty($variables['page']['sidebar_second'])) {
        $variables['content_column_class'] = ' class="col-sm-6 main-content"';
    } elseif (!empty($variables['page']['sidebar_first']) || !empty($variables['page']['sidebar_second'])) {
        $variables['content_column_class'] = ' class="col-sm-9 main-content"';
    } else {
        $variables['content_column_class'] = ' class="col-sm-12 main-content"';
    }
}


function mytheme_preprocess_page(&$vars, $hook){
    if (isset($vars['node'])) {
        switch ($vars['node']->type) {
            case 'article':
                $vars['title'] = '';
                break;
        }
    }
}

我知道我应该合并这些函数。问题是:如何实现?

因为这些(&$variables)(&$vars, $hook)似乎对于每个单独的部分都是必需的。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-02-03 21:32:52

它的定义如下:

function mytheme_preprocess_page(&$variables, $hook = null) {

将钩子参数设置为可选,然后可以像这样调用函数:

mytheme_preprocess_page($var);mytheme_preprocess_page($var, $another_var)

在第一种情况下,$hook将为null,在第二种情况下,$hook的值将为$another_var

您可以像这样签入函数:if ($hook === null) {这两个函数中的哪一个被调用

票数 0
EN

Stack Overflow用户

发布于 2015-02-03 21:37:42

但是这里你只有一个函数,而不是两个函数。只有第二个参数是可选的。与其他一些语言(如Java)不同,在PHP中你不能有两个同名不同参数的函数。您不能重载该函数。

Same named function with multiple arguments in PHP

所以,我想,你只需要从你的“两个”函数中复制内容,并将其放在一个函数上,然后删除另一个函数。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28300133

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档