Я работаю над некоторым старым PHP, и я не являюсь экспертом высшего класса PHP (пока).
Некоторая часть кода в классе вызывает метод с параметром массива:
$saleServers = $this->getSaleServers();
// Getting prices from cache or request
$prices = $this->getProductPrices($saleServers);
Тем не менее, метод не определяет параметр массива:
public function getProductPrices($getLicenseLifetime = true) { ... }
Мои вопросы:
Как PHP справится? $saleServers
Это собирается игнорировать это? Если да, думаю, я могу удалить его из вызова функции.
Как PHP справится? $getLicenseLifetime
в отношении $saleServers
? Будет ли они смешивать их или держать отдельно (то есть PHP не собирается назначать $saleServers
в $getLicenseLifetime
, правильный)?
$getLicenseLifetime
будет установлен на содержание $saleServers
, если вы так называете, и будет true
, если вы пропустите параметр.
PHP слабо типизирован, поэтому вы можете вызывать функцию с переменными любого типа, а внутри функции вы можете проверить тип переменной, которая содержит параметр, с помощью таких функций, как is_array () и т.д. PHP5 знает концепцию хинтинга типов, которая в основном работает с объектами (например, не поддерживает скаляры), а с PHP7 вы можете объявлять типы аргументов.
Других решений пока нет …