How can dynamic signatures be created in PHP?

Dynamic signatures in PHP can be created by using the `ReflectionFunction` class to retrieve information about a function, such as its name, parameters, and return type. This information can then be used to generate a signature string that represents the function's signature dynamically.

function getFunctionSignature(string $functionName): string {
    $reflection = new ReflectionFunction($functionName);
    $params = [];
    
    foreach ($reflection->getParameters() as $param) {
        $paramStr = '';
        if ($param->hasType()) {
            $paramStr .= $param->getType() . ' ';
        }
        $paramStr .= '$' . $param->getName();
        if ($param->isOptional()) {
            $paramStr .= ' = ' . var_export($param->getDefaultValue(), true);
        }
        $params[] = $paramStr;
    }
    
    $signature = $reflection->getName() . '(' . implode(', ', $params) . ')';
    
    return $signature;
}

// Example usage
$signature = getFunctionSignature('myFunction');
echo $signature; // Output: myFunction($param1, $param2 = 'default')