【问题标题】:PHP Method Check if used for assignmentPHP方法检查是否用于赋值
【发布时间】:2014-01-29 06:47:48
【问题描述】:

我不确定这是否可能,但是,我们是否可以构建一个基于直接调用方法或在赋值中使用的方法来返回或回显结果

function foo()
{
    return "bar";
}

$abc = foo();
// $abc will have the value "bar"

但是如果直接调用 foo(),它应该 echo "bar"

foo();
// should echo / print "bar"

在 foo() 之前添加 echo 可以解决问题,但是不使用 echo 怎么可能实现。可能会在函数 foo() 中添加一些代码

【问题讨论】:

  • 方法本身不知道它将如何在外部作用域中使用(它可能在表达式中、在单个调用中、在赋值中,甚至在诸如 eval() 之类的东西中)
  • @AlmaDo,谢谢!但是,应该有一些东西我可以根据它的调用方式来管理默认方法的行为
  • 你可以将一些参数传递给函数来决定功能
  • 好的。祝你好运$x = function() { return call_user_func(chr(102).str_repeat('o', 2)); }; eval('echo $x();');

标签: php methods echo return-value variable-assignment


【解决方案1】:

有一种可能的方法是在你的函数中回显。 就像

<?php function foo()
{
    echo "bar";
    return "bar";
}

 echo $abc = foo();
?>

【讨论】:

  • 这行不通。如果我们使用$abc = foo(); 来获取 $abc 的值,它也会回显该值。
猜你喜欢
  • 2010-11-15
  • 1970-01-01
  • 1970-01-01
  • 2012-08-25
  • 2012-05-04
  • 2012-04-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多