【问题标题】:PHP - Public function inside foreach loop (WordPress widget)PHP - foreach 循环内的公共函数(WordPress 小部件)
【发布时间】:2017-06-18 03:58:02
【问题描述】:

我对 PHP 很陌生,所以这可能是一个简单(而且愚蠢)的问题。

我正在 WordPress 中编写一个小部件,我需要为每个用户找到头像的链接,在搜索后显示。

现在我有这个:

<?php
foreach ( $user_query->results as $user ) {

}?>

我需要把用户ID解析成这个函数:

public function get_avatar_url( $id, $args = null ) {
    $args = get_avatar_data( $id, $args );
    return $args['url'];
}

如何将公共函数放入 foreach 循环中?

【问题讨论】:

    标签: php wordpress function loops foreach


    【解决方案1】:

    是的,您可以在 foreach 循环中拥有一个公共函数,但您需要在循环中“打开”或实例化您的对象。

    根据类名,您可以执行以下操作:

    <?php
        foreach ( $user_query->results as $user ) {
            $object = new yourclassname($user->ID); // maybe you don't need $user->ID to create this object
            $args = array();
            $avatar_url = $object->get_avatar_url($user->ID, $args);
        }
    ?>
    

    有些类只需要在foreach循环之前实例化一次,这取决于类在做什么。

    希望对你有帮助!

    【讨论】:

    • 嗨 Benoti 正如我所说,我对 PHP 很陌生。如果它不是公共功能,它有什么区别吗?我不太确定 $object 是如何工作的:/(对不起)
    • 是的,Grillo,你必须尝试,阅读文档,阅读源代码,这就是你可以学习的方式。我们没有足够的元素来帮助您使用给定的代码提供更多帮助。但是对于您的主要问题,是的,如果它是静态函数或私有函数,它会有所不同。但是,实际上,这取决于 foreach 循环的位置。如果 foreach 循环是类的一部分,则可以轻松访问函数。如果没有,您需要该函数是静态的或公共的,并且需要像我向您展示的那样访问或像这样 yourclassname::get_avatar_url()。
    猜你喜欢
    • 2016-09-26
    • 2012-07-19
    • 1970-01-01
    • 2019-09-04
    • 1970-01-01
    • 2014-05-29
    • 2020-12-12
    • 1970-01-01
    • 2012-08-10
    相关资源
    最近更新 更多