PHP:知道函数的返回值是否会被使用或丢弃

时间:2016-04-05 20:13:09

标签: php

鉴于功能

function sum( $a, $b )
{
   echo $a + $b;
   return $a + $b;
}

可以使用它的返回值......

$c = sum( 2, 3 );
otherFunction( sum( 4, 5 ) );

......或者只是丢弃。

sum( 6, 7 );

有没有办法从sum()内的代码知道如果在函数终止时将使用返回值(分配给变量/表达式或传递给另一个函数)还是丢弃?

1 个答案:

答案 0 :(得分:3)

不,我不敢。

有些语言可以让你检测函数的调用上下文(例如Perl有UnaryOperator<Change> filter = change -> { String text = change.getText(); if (text.matches("[0-9]*")) { return change; } return null; }; TextFormatter<String> textFormatter = new TextFormatter<>(filter); fieldNport = new TextField(); fieldNport.setTextFormatter(textFormatter); ,它不仅会告诉你是否分配了返回值,而且它是否预期是一个标量或列表值)。但它们是例外;大多数都没有这样的功能,PHP就在那个阵营中。

您的函数必须只返回它返回的值,并将其留给调用者,以便使用返回值。