Проверка и установка типов переменных
Большая часть функций для работы с переменными связана с проверкой типов. Двумя самыми общими функциями являются gettype ()
и settype ()
. Они имеют показанные ниже прототипы, которые определяют, какие аргументы им следует передавать, а также какие значения они возвращают.
string gettype (mixed var);
int settype (string var, string type);
При вызове функции ей передается некоторая переменная. Функция ("get type
" означает "получить тип") определяет тип этой переменной и возвращает строку содержащую имя типа или фразу "unknown type
" (тип неизвестен), если тип переменной не принадлежит к числу стандартных типов, т.е. не является boolean, integer, double (float), string, array, object, resource
или NULL
.
При вызове функции settype()
ей необходимо передать переменную, тип которой требует изменить, и строку, содержащую новый тип переменной из приведенного выше списка.
Данные функции ("set type
" означает "установить тип")используется, как показано в следующем примере:
$a = 56;
echo gettype ($a). '<br>';
settype ($a,'float');
echo gettype ($a). '<br>';
Перед вызовом функции gettype()
переменная $a
имеет тип integer
. После вызова функции settype()
ее тип изменился на double (float)
.
РНР предоставляет также ряд функций для проверки типов. Каждая из этих функций принимает переменную в качестве аргумента и возвращает значение true
или false
. К упомянутым функциям относятся:
is_array
is_double(), is_float(), is_rea l()
(все они одна и та же функция)is_long(), is_int(), is_integer()
(все они одна и та же функция)is_string()
is_object()
is_resource()
is_null()
is_scalar()
(проверяет, является ли переменная склярной, т.е. имеет ли она типinteger, boolean, string, float
)is_numeric()
(проверяет, является ли переменная числом или какой-нибудь числовой строкой)is_callable()
(проверяет, является ли переменная именем допустимой функции)
Проверка состояния переменных
В РНР имеется несколько функций, предназначенных для проверки состояния переменных.
Первая из них, isset()
, имеет следующий прототип:
boolean isset (mixed var);
Эта функция ("is set
" — установлена ) принимает в качестве аргумента имя переменной и возвращает true
, если переменная существует, и false
в противном случае. Ей также можно передать разделенный запятыми список переменных, и функция isset()
возвратит true
, если все переменные с списке установлены.
Переменную можно удалить, используя родственную функцию unset()
, которая имеет следующий прототип:
int unset (mixed var);
Эта функция ("unset
" — не установлена)фактически удаляет переменную, переданную ей в качестве аргумента.
И, наконец, в РНР доступна функция empty()
. Она проверяет существование переменной и наличие у нее непустого, ненулевого значения, возвращая, соответственно, значение true
или false
. Эта функция ("empty
" — пустая) имеет следующий прототип:
int empty (mixed var);
Рассмотрим пример использования перечисленных выше функций.
Посмотрите, как работают эти функции, для чего временно добавим в разрабатываемый сценарий следующие строки кода:
echo 'isset($filtr): '.isset ($filtr). '<br>';
echo 'isset($nothere): '.isset ($nothere). '<br>';
echo 'empty($filtr): '.empty ($filtr). '<br>';
echo 'empty($nothere): '.empty ($nothere). '<br>';
Откройте файл с формой, заполните ее и нажмите кнопку отправить заказ.
В окне веб-браузера это будет выглядеть ТАК.
Функция isset ()
должна возвратить для переменной $filtr
значение 1 (true
) вне зависимости от того, какое значение введено в поле формы, и от того введено ли вообще значение. Возвращаемое значение функции empty ()
зависит от введенного значения.
Переменная $nothere
не существует, поэтому для нее функция isset ()
возвращает пустое значение (false
), в то время как функция empty ()
выдает значение true.
Эти функции могут оказаться полезными, если требуется проверить, заполнил ли пользователь соответствующие поля формы.
Повторная интерпретация переменных
Эффекта, эквивалентного приведению типа переменной, можно достич и с помощью функций. Для этих целей используются три функции:
int intval (mixed var);
float floatval (mixed var);
string strval (mixed var);
Каждая из них принимает в качестве аргумента переменную и возвращает значение переменной, преобразованное к соответствующему типу.
Функция intval ()
также позволяет указать основание системы счисления, когда переменная преобразуется из строкового представления.
Комментарии(0)
Для добавления комментариев надо войти в систему и авторизоватьсяКомментирование статей доступно только для зарегистрированных пользователей:Зарегистрироваться