Возврат 2 значений из функции

Возможно ли вернуть два значения при вызове функции, которая выводит значения, например, у меня есть:

<?php function ids($uid = 0, $sid = '') { $uid = 1; $sid = md5(time()); return $uid; return $sid; } echo ids(); ?> 

Что будет выводить 1 , я хочу выбрать, что делать, например, ids($sid) , но он все равно будет выводить 1 .

Возможно ли это?

Вы можете вернуть только одно значение. Но вы можете использовать массив, который сам содержит два других значения:

 return array($uid, $sid); 

Затем вы получаете доступ к таким значениям, как:

 $ids = ids(); echo $ids[0]; // uid echo $ids[1]; // sid 

Вы также можете использовать ассоциативный массив:

 return array('uid' => $uid, 'sid' => $sid); 

И доступ к нему:

 $ids = ids(); echo $ids['uid']; echo $ids['sid']; 

Верните массив или объект, если вам нужно вернуть несколько значений. Например:

 function foo() { return array(3, 'joe'); } $data = foo(); $id = $data[0]; $username = $data[1]; // or: list($id, $username) = foo(); 

Вы можете использовать массив и функцию списка, чтобы легко получить информацию:

 function multi($a,$b) { return array($a,$b); } list($first,$second) = multi(1,2); 

Я надеюсь, что это поможет вам

Джером

 function ids($uid = 0, $sid = '') { $uid = 1; $sid = md5(time()); return array('uid' => $uid, 'sid' => $sid ); } $t = ids(); echo $t['uid'],'<br />'; echo $t['sid'],'<br />'; 

Много возможностей:

 // return array function f() { return array($uid, $sid); } list($uid, $sid) = f(); $uid; $sid; // return object function f() { $obj = new stdClass; $obj->uid = $uid; $obj->sid = $sid; return $obj; } $obj->uid; $obj->sid; // assign by reference function f(&$uid, &$sid) { $uid = '...'; $sid = '...'; } f($uid, $sid); $uid; $sid; 

Передача по ссылке будет решением. Таким образом, вы:

  • вернуть значение, как обычно

  • и изменить второй (тот, который прошел путем повторения функции)

Пример:

 function foo(&$var) // notice the & in front of the parameter passed { $var++; return 1; } $a=5; echo foo($a); // echoes 1, the returned value echo $a; // $a is now 6 
 return array('uid' => $uid, 'sid' => $sid); 

и затем получить доступ к нему, как

 $dinga = ids(); extract($dinga); 

extract будет делать переменную uid и sid. Итак, вы можете использовать $ uid и $ sid.