首先,让我首先说我是一个真正的初学者,主要学习PHP。理解编程的模式和语义对我来说比学习语法更重要。我对我要问的内容做了一些研究,但我找不到任何有关它的信息。所以,我在想...如果我需要执行以下操作...给函数多个输出以传递代码的其他部分。这种功能的名称是什么(如果存在)?或者如果它不存在,为什么不呢?什么是实现相同语义的最佳实践?
更多详情: 让我们说我想用一个参数调用一个函数,并且不仅将值返回到同一个参数调用位置,而且还返回到另一个位置或程序的其他部分。意味着在两个不同位置具有两个输出的功能,但第二个位置不是呼叫,只是在第一个位置进行的呼叫的输出,同时以与第一个相同的值输出返回。所以,不要单独调用它两次......而是调用一次并在不同位置输出两次。第二个输出将用于将结果传递到程序的另一部分,因此不适合作为"呼叫/输入",而更多的是作为"输出"仅来自"输入"值。如何在函数中实现多个输出?
如果这似乎是一个愚蠢的问题,我很抱歉。我无法在任何地方找到这些信息。提前致谢
答案 0 :(得分:3)
你想要做的基本上是这样的(我将把它作为一个实用的例子):
from datetime import datetime
df = pd.DataFrame({'date': ['2017-04-12', '2017-04-13'],
'time': ['17:30:18.733', '07:30:18']})
def date_parser(date_string):
try:
timestamp = datetime.strptime(date_string, '%Y-%m-%d %H:%M:%S.%f')
timestamp = timestamp.strftime('%a, %d %b %Y %H:%M:%S %f')[:-3]
except ValueError:
timestamp = datetime.strptime(date_string, '%Y-%m-%d %H:%M:%S')
timestamp = timestamp.strftime('%a, %d %b %Y %H:%M:%S 000')
return timestamp
df['datetime_str'] = (df['date'] + ' ' + df['time']).apply(lambda x: date_parser(x))
>>> df
date time datetime_str
0 2017-04-12 17:30:18.733 Wed, 12 Apr 2017 17:30:18 733
1 2017-04-13 07:30:18 Thu, 13 Apr 2017 07:30:18 000
现在您可以使用这两个参数和该函数的结果,以便在其他函数中使用。
function add($number1, $number2)
{
$result = $number1 + $number2;
return array('number1' => $number1,'number2' => $number2,'result' => $result);
}
$add = add(5,6); // Returns array('number1' => 5, 'number2' => 6, 'result' => 11);
答案 1 :(得分:0)
如果问题是关于返回多个变量,那么它只是:
function wtf($foobar = true) {
$var1 = "first";
$var2 = "second";
if($foobar === true) {
return $var2;
}
return $var1;
}
答案 2 :(得分:0)
您可以让函数返回值数组:
function foo($bar) {
$bat = 1;
return [$bar, $bat];
}
或者您可以传递一个参数,告诉它返回哪个值:
function foo($bar, $return_bar=false) {
$bat = 1;
return $return_bar ? $bar : $bat;
}