функция — PHP: объявить тип аргумента как класс (например, Java)

Мы можем указать тип аргумента в Java как Class или же Class<?> или же Class<SomeClass> или же Class<? extends SomeClass>, Также мы знаем В PHP добавлена ​​возможность объявления типов (также известные как подсказки типов в PHP 5). Таким образом, способ объявить тип аргумента function как Class (как Java) в PHP?

Например (в PHP):

function f(Class<string> $clazz) { ... }  // ???

0

Решение

Как вы сказали, это называется тип подсказки в PHP.

Пример из документации по PHP:

<?php
// An example class
class MyClass
{
/**
* A test function
*
* First parameter must be an object of type OtherClass
*/
public function test(OtherClass $otherclass) {
echo $otherclass->var;
}/**
* Another test function
*
* First parameter must be an array
*/
public function test_array(array $input_array) {
print_r($input_array);
}

/**
* First parameter must be iterator
*/
public function test_interface(Traversable $iterator) {
echo get_class($iterator);
}

/**
* First parameter must be callable
*/
public function test_callable(callable $callback, $data) {
call_user_func($callback, $data);
}
}

// Another example class
class OtherClass {
public $var = 'Hello World';
}
?>

Часть, которая действительно имеет значение в вашем вопросе, это функция, где OtherClass указывает, что аргумент должен быть экземпляром OtherClassВ противном случае PHP выдаст ошибку.

<?php
/**
* A test function
*
* First parameter must be an object of type OtherClass
*/
public function test(OtherClass $otherclass) {
echo $otherclass->var;
}
?>
2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]