Groovy имеет доступ к JRE:
System.err.println "goes to stderr"
, Хотя может быть больше Groovy-fied путь...
Вы можете использовать только:
$a = func1() or $a = func2() or $a = func3();
или я что-то упустил?
Нет, нет, и это, на мой взгляд, одно из плохих решений, принятых Расмусом Лердорфом при разработке PHP, которое большинство затрудняет компетентных разработчиков ради того, чтобы баловать некомпетентных.
Править : В PHP 5.3 и выше вы можете написать $ a = $ b?: $ C
и даже $ a = $ b?: $ C?: $ D
. Все еще не так хорошо, как логические операторы без повреждения мозга, но это что-то.
А как насчет функций переменных?
function coalesce($funcs)
{
foreach ($funcs as $func)
{
//Catch language constructs
switch($func)
{
case 'die':
die();
}
$result = $func();
if ($result)
{
return $result;
}
}
}
Вы можете использовать какую-то функцию coalesce
:
function coalesce() {
foreach (func_get_args() as $arg) {
if ($arg) {
return $arg;
}
}
return null;
}
$a = coalesce($a, $b) or die("no value");
Это должно работать:
$a = (($f1=func1()) ? $f1 : ($f2=func2()) ? $f2 : func3()) );