【问题标题】:PHP define a function output as variablePHP将函数输出定义为变量
【发布时间】:2013-12-02 00:40:16
【问题描述】:

假设我有一个带标题的函数,例如:

get_title(); 输出“title”。

我想将其设置为变量,例如$title = get_title();

不幸的是,这只是回显了函数,并没有为变量捕获它。我该怎么做?

我想将变量用于 if 语句。

if ($title == "no title") { stop }

【问题讨论】:

  • 顺便问一下stop是什么?
  • 伪代码 @putvande 我相信 OP 的意思一定是 exit; 或类似停止进程的东西。
  • 谢谢您,Ibu,我对 PHP 非常熟悉,但已经过了漫长的一天,似乎无法通过正确的搜索来找到我的答案。

标签: php function variables output


【解决方案1】:

如果您无权修改函数get_title,您可以随时使用output buffers

<?php
ob_start();
get_title()
$title = ob_get_contents();

明确的解决方案是返回 title 的值而不是回显它。

<?php

function get_title() {
    $title = // black box //;
    return $title;
}

$title = get_title();

正如您所指出的,如果您不希望该函数将任何内容输出到屏幕上,您可以使用 ob_end_clean() 来销毁 get_title() 可能具有的任何输出。

【讨论】:

  • 谢谢大家,我不能改变原来的功能,所以这是唯一的方法。我要在这个 ob_start() 上做一些功课;业务,以前从未见过,但看起来很有趣。
  • 非常感谢。我已经为 WordPress 与类似的东西抗争了大约 2 个小时。您答案中的第一段代码为我解决了这个问题。需要注意的一件事是,我必须在设置变量后添加ob_end_clean();。非常感谢!
【解决方案2】:

你必须返回你的变量而不是回显它。

function get_title() {
    return "title";
}

【讨论】:

    【解决方案3】:

    你只需要返回标题。

    function getTitle(){
        $title="title";
        //echo $title;
        return $title; //return instead of echoing
    }
    

    【讨论】:

      猜你喜欢
      • 2013-09-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-02-20
      • 1970-01-01
      相关资源
      最近更新 更多