What are the limitations of adding methods to a PHP class during runtime?

When adding methods to a PHP class during runtime, one limitation is that the added methods are not visible until the class is re-instantiated. This means that existing instances of the class will not have access to the newly added methods. To solve this issue, you can use the magic method __call() to dynamically handle method calls for undefined methods at runtime.

class MyClass {
    public function __call($name, $arguments) {
        if ($name === 'newMethod') {
            return $this->newMethod($arguments);
        }
        else {
            throw new Exception('Method ' . $name . ' not found');
        }
    }

    public function newMethod($arguments) {
        // Method implementation here
    }
}

$instance = new MyClass();
$instance->newMethod($arguments); // This will call the dynamically added method