runkit7_method_add

Dynamically adds a new method to a given class

&reftitle.description; `bool` `runkit7_method_add` `string` `class_name` `string` `method_name` `string` `argument_list` `string` `code` `int` `flags` RUNKIT7_ACC_PUBLIC `string` `doc_comment`&null; `string` `return_type` `bool` `is_strict` `bool` `runkit7_method_add` `string` `class_name` `string` `method_name` `Closure` `closure` `int` `flags` RUNKIT7_ACC_PUBLIC `string` `doc_comment`&null; `string` `return_type` `bool` `is_strict`
&reftitle.parameters;

`class_name`

- The class to which this method will be added

`method_name`

- The name of the method to add

`argument_list`

- Comma-delimited list of arguments for the newly-created method

`code`

- The code to be evaluated when `method_name` is called

`closure`

- A `closure` that defines the method.

`flags`

- The type of method to create, can be `RUNKIT7_ACC_PUBLIC`, `RUNKIT7_ACC_PROTECTED` or `RUNKIT7_ACC_PRIVATE` optionally combined via bitwise OR with `RUNKIT7_ACC_STATIC`

`doc_comment`

- The doc comment of the method.

`return_type`

- The return type of the method.

`is_strict`

- Whether the method behaves as if it were declared in a file with `strict_types=1`

&reftitle.returnvalues;

&return.success;

&reftitle.examples;

### `runkit7_method_add` example

    <?php
    class Example {
        function foo() {
            echo "foo!\n";
        }
    }

    // create an Example object
    $e = new Example();

    // Add a new public method
    runkit7_method_add(
        'Example',
        'add',
        '$num1, $num2',
        'return $num1 + $num2;',
        RUNKIT7_ACC_PUBLIC
    );

    // add 12 + 4
    echo $e->add(12, 4);
    ?>

&example.outputs;

    16

&reftitle.seealso;

- `runkit7_method_copy`
- `runkit7_method_redefine`
- `runkit7_method_remove`
- `runkit7_method_rename`
- `runkit7_function_add`