если нет, то как объявить двойной тип номера?
function testFloat(float $f) { return $f; } echo testFloat(1.2);
Допустимая фатальная ошибка: аргумент 1, переданный testFloat (), должен быть экземпляром float, double given
- Предупреждение: mysqli_num_rows () ожидает, что параметр 1 будет mysqli_result, boolean задан в
- Предлагает ли AMD OpenCL нечто похожее на GPUDirect от CUDA?
- Инструмент или код PHP для преобразования IP-адреса в координаты lat / lng
- Какие-нибудь хорошие PHP-совместимые фреймворки PHP?
- Как загрузить файл вида из другого представления с помощью Codeigniter БЕЗ необходимости проходить через контроллер?
- PHP, массив массивов и массив объектов
Обновить:
Что касается типа намека :
Тип подсказки может быть только типа объекта и массива (начиная с PHP 5.1). Традиционный тип hinting с int и string не поддерживается.
Поэтому я не знаю, но, вероятно, вы получите ошибку, потому что поддерживаются только array
и типы object
.
Я не совсем уверен, что вы хотите, но есть только float
:
Числа с плавающей запятой (также называемые «float», «doubleles» или «real numbers») могут быть указаны с использованием любого из следующих синтаксисов:
<?php $a = 1.234; $b = 1.2e3; $c = 7E-10; ?>
и там вы найдете также:
Преобразование в float
Информацию о преобразовании строк в float см. В разделе Преобразование строк в числа . Для значений других типов преобразование выполняется путем преобразования значения в целое число сначала, а затем для плавания. Дополнительную информацию см. В разделе Преобразование в целое число . Начиная с PHP 5, создается уведомление, если объект преобразуется в float.
Тип float
в PHP реализуется внутренне как C double
. Размер такого типа не указан стандартом C, для которого требуется только sizeof(float) <= sizeof(double) <= sizeof(long double)
.
Существует три реальных плавающих типа , обозначаемых как float , double и long double . 34) Набор значений типа float является подмножеством набора значений типа double ; набор значений типа double является подмножеством набора значений типа long double .
( отсюда )
Ошибка не имеет ничего общего с float или double. Поскольку тип hinting работает только с массивом или объектом, PHP считает, что «float» – это класс. Не используйте тип-намеки для примитивных скалярных типов. PHP – это нетипизированный язык. Это не имеет смысла делать это.
Для дальнейшего продвижения моей точки зрения вы можете попробовать этот пример,
function testFloat(integer $f) { return $f; } echo testFloat(1);
Вы получаете аналогичную ошибку,
Catchable fatal error: Argument 1 passed to testFloat() must be an instance of integer, integer given, called in /private/tmp/test.php on line 8 and defined in /private/tmp/test.php on line 3
http://php.net/manual/en/language.types.float.php
http://www.php.net/manual/en/function.settype.php
И, пожалуйста, читайте также.