<?php function multi($a, $b){ return $a * $b; } function plus($a, $b){ return $a + $b; } function calc($op, $b, $c){ if ($op === '+') return plus($b, $c); else if ($op === '*') return multi($b, $c); else return 0; } var_dump(calc('*', 3, 5)); // int(15) この calc という関数から plus や multi という呼び出しにおいて、calc に戻ってくる必要はない。 multi の計算結果がそのまま calc の結果になる。 PHPは(というか基本的に手続き型言語は)関数の末尾呼び出し最適化をしない。 xdebugには関数呼び出しが深くな