在PHP中回显或返回一个函数

时间:2014-01-12 15:22:51

标签: php function return echo

我有这个非常简单的问题,但我现在正在寻找几个小时,但找不到答案。

用我的函数wzd_url()创建我的网址。

例如wzd_url(2)给了我:http://www.mywebsite.com/douchedeur-glassoort

我在整个项目中使用此功能并且工作正常。但是知道我想使用这个函数如下:

echo = '<a href="' . wzd_url(2) . '">test</a>';

或:

function output() {
$output = '<a href="' . wzd_url(2) . '">test</a>';
echo $output;   

}

output();

输出:http://www.mywebsite.com/douchedeur-maten 测试

我读了一些关于这个主题的文章,他们说我需要在我的wzd_url()函数中更改echo以返回,但是如果我这样做,这个函数就不再起作用了。

有人可以帮我这个吗?

在这个数组中,我为我的页面存储了一些数据:

$wzd_pages = array(
    0   => array('Intro', 'douchedeur-intro'),
    1   => array('Maten', 'douchedeur-maten'),
    2   => array('Glassoort', 'douchedeur-glassoort'),
    3   => array('Scharnieren', 'douchedeur-scharnieren', 'Scharnieren en draairichting'),
    4   => array('Deuropener', 'douchedeur-deuropener'),
    5   => array('Coating', 'douchedeur-coating'),
    6   => array('Prijs / Bestellen', 'douchedeur-prijs'));

使用此功能,我可以创建我的网址:

// URL  
function wzd_url($page) {
    global $wzd_pages;
    echo bloginfo('wpurl') . '/' . $wzd_pages[$page][1];
}   

3 个答案:

答案 0 :(得分:0)

如果您更改echo以返回,您的函数将“返回”该链接,但它不会显示它。然后你需要在模板中回显,例如:

echo <a href="' . wzd_url(2) . '">test</a>

总结 - 当您需要将echo从功能移到模板

答案 1 :(得分:0)

我建议你创建2个功能如下: -

function wzd_url($page) {
global $wzd_pages;
    if(is_array($wzd_pages[$page]) && count($wzd_pages[$page])){
        $_return['url'] = bloginfo('wpurl') . '/' . $wzd_pages[$page][1];
        $_return['text'] = $wzd_pages[$page][0];
        return $_return;
    }else{
        return false;
    }
}

function anchor($page){

    if($url = wzd_url($page)){
?>
<a href="<?php echo $url['url'];?>"><?php echo $url['text']?></a>
<?php
    }

}

答案 2 :(得分:0)

我需要修改wzd_url();函数,因为它使用bloginfo();,并且此函数打印字符串。所以我需要get_bloginfo();或更好:site_url();

// URL  
function wzd_url($page) {
    global $wzd_pages;
    echo siteurl('wpurl' . '/' . $wzd_pages[$page][1] );
}