LINUX.ORG.RU

История изменений

Исправление MOPKOBKA, (текущая версия) :

надо всего несколько строк. А сколько понадобится, чтобы расширить таким образом семантику php?

Вроде не сильно больше, вот, как тебе?

<?php
function pipe() {
  $x = null;
  foreach (func_get_args() as $arg)
    foreach (explode('|', $arg) as $cmd)
      $x = is_callable(trim($cmd)) ? call_user_func(trim($cmd), $x) : eval("return $cmd;");
  return $x;
}

echo pipe('10 | sin | cos | number_format($x, 3)'), "\n";

// Или вот так
echo pipe(10, 'sin', 'cos', 'number_format($x, 3)'), "\n";

Исправление MOPKOBKA, :

надо всего несколько строк. А сколько понадобится, чтобы расширить таким образом семантику php?

Вроде не сильно больше, вот, как тебе?

<?php
function pipe() {
  $x = null;
  foreach (func_get_args() as $arg)
    foreach (explode('|', $arg) as $cmd)
      $x = is_callable(trim($cmd)) ? call_user_func(trim($cmd), $x) : eval("return $cmd;");
  return $x;
}

echo pipe('10 | sin | cos | number_format($x, 3)'), "\n";

Исходная версия MOPKOBKA, :

надо всего несколько строк. А сколько понадобится, чтобы расширить таким образом семантику php?

Вроде не сильно больше, вот, как тебе?

<?php
function pipe() {
  $x = null;
  foreach (func_get_args() as $arg)
    foreach (explode('|', $arg) as $cmd)
      $x = is_callable(trim($cmd)) ? call_user_func(trim($cmd), $x) : eval("return $cmd;");
  return $x;
}

echo pipe('10 | sin | cos | number_format($x, 3) '), "\n";