Exemple #1
0
<?php

require_once "fullshop.php";
$prod_class = new ReflectionClass('CdProduct');
$method = $prod_class->getMethod("__construct");
$params = $method->getParameters();
foreach ($params as $param) {
    print argData($param) . "\n";
}
function argData(ReflectionParameter $arg)
{
    $details = "";
    $declaringclass = $arg->getDeclaringClass();
    $name = $arg->getName();
    $class = $arg->getClass();
    $position = $arg->getPosition();
    $details .= "\${$name} has position {$position}\n";
    if (!empty($class)) {
        $classname = $class->getName();
        $details .= "\${$name} must be a {$classname} object\n";
    }
    if ($arg->isPassedByReference()) {
        $details .= "\${$name} is passed by reference\n";
    }
    if ($arg->isDefaultValueAvailable()) {
        $def = $arg->getDefaultValue();
        $details .= "\${$name} has default: {$def}\n";
    }
    if ($arg->allowsNull()) {
        $details .= "\${$name} can be null\n";
    }
Exemple #2
0
    $position = $arg->getPosition();
    $details .= "{$name} Находится на позиции {$position} <br>";
    if (!empty($class)) {
        $classname = $class->getName();
        // возвращает объект класса ReflectionClass если в сигнатуре класса было уточнение
        $details .= "{$name} должен быть объектом типа {$classname} <br>";
    }
    if ($arg->isPassedByReference()) {
        // проверяет является ли аргумент ссылкой
        $details .= "{$name} передан по ссылке <br>";
    }
    if ($arg->isDefaultValueAvailable()) {
        // проверяет есть ли значение по умолчанию
        $def = $arg->getDefaultValue();
        // получает значение по умолчанию
        $details = "{$name} по умолчанию равно: {$def} <br>";
    }
    return $details;
}
$prod_class = new ReflectionClass("CDProduct");
$method = $prod_class->getMethod("__construct");
// записываем в переменную объект класса ReflectionMethod, в котором описан метод __construct
$params = $method->getParameters();
// записываем в массив объект класса ReflectionParameter, в котором описаны аргументы метода
foreach ($params as $param) {
    // перебираем массив с аргументами
    print argData($param);
    // передаём каждый аргумент функции argData()
}
echo "<hr>";
echo "</pre>";