<commit_before><?php
namespace M3y\Tooo;

/**
 * To object-oriented.
 */
class Tooo
{
    /**
     * 関数の実行。
     *
     * phpに定義されている関数をオブジェクトのメソッドとして利用できるようにする。<br />
     * ただし、値渡しで実行される関数のみ。
     *
     * @throws BadFunctionCallException if the function is not defined
     * @throws InvalidArgumentException if the arguments is passed by reference
     * @param  string $name      関数名
     * @param  array  $arguments 関数の引数
     * @return mixed  実行結果
     */
    public function __call($name, $arguments)
    {
        if (!function_exists($name)) {
            throw new \BadFunctionCallException("undefined function. [$name]");
        }

        $reflectionFunction = new \ReflectionFunction($name);
        $reflectionParameters = $reflectionFunction->getParameters();

        foreach ($reflectionParameters as $parameter) {
            if ($parameter->isPassedByReference()) {
                throw new \InvalidArgumentException(
                    'sorry, it does not support the use of pass-by-reference.'
                );
            }
        }

        return $reflectionFunction->invokeArgs($arguments);
    }
}<commit_msg>add hasPassedByParameter<commit_after><?php
namespace M3y\Tooo;

/**
 * To object-oriented.
 */
class Tooo
{
    /**
     * 関数の実行。
     *
     * phpに定義されている関数をオブジェクトのメソッドとして利用できるようにする。<br />
     * ただし、値渡しで実行される関数のみ。
     *
     * @throws BadFunctionCallException if the function is not defined
     * @throws InvalidArgumentException if the arguments is passed by reference
     * @param  string $name      関数名
     * @param  array  $arguments 関数の引数
     * @return mixed  実行結果
     */
    public function __call($name, $arguments)
    {
        if (!function_exists($name)) {
            throw new \BadFunctionCallException("undefined function. [$name]");
        }

        $reflectionFunction = new \ReflectionFunction($name);
        $reflectionParameters = $reflectionFunction->getParameters();

        foreach ($reflectionParameters as $parameter) {
            if ($parameter->isPassedByReference()) {
                throw new \InvalidArgumentException(
                    'sorry, it does not support the use of pass-by-reference.'
                );
            }
        }

        return $reflectionFunction->invokeArgs($arguments);
    }

    public function hasPassedByReference(\ReflectionFunction $reflectionFunction)
    {
        $reflectionParameters = $reflectionFunction->getParameters();
        foreach ($reflectionParameters as $parameter) {
            if ($parameter->isPassedByReference()) {
                return true;
            }
        }

        return false;
    }
    }
}
{'fraction_non_alphanumeric': 0.1010939268200679, 'fraction_numerical': 0.0007544322897019992, 'mean_word_length': 2.238095238095238, 'pattern_counts': {'":': 0, '<': 7, '<?xml version=': 0, '>': 13, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '5071909', 'n_tokens_mistral': 803, 'n_tokens_neox': 770, 'n_words': 165}