International PHP Conference Berlin 2025

is_scalar

(PHP 4 >= 4.0.5, PHP 5, PHP 7, PHP 8)

is_scalar Проверяет, содержит ли переменная скалярное значение

Описание

is_scalar(mixed $value): bool

Функция проверяет, вычисляется ли выражение как скалярное значение.

См. раздел «Скалярные типы».

Замечание:

Функция is_scalar() не считает ресурсы (resource) скалярными значениями, поскольку ресурсы — это абстрактные типы данных, которые пока основаны на целых числах (int). Полагаться на эту деталь не нужно, поскольку не исключено, что в будущем функция будет рассматривать ресурсы по-другому.

Замечание:

Функция is_scalar() не считает NULL скаляром.

Список параметров

value

Переменная, которую требуется проверить.

Возвращаемые значения

Функция возвращает true, если значение value — скаляр, иначе возвращает false.

Примеры

Пример #1 Пример проверки скалярности переменной функцией is_scalar()

<?php

function show_var($var)
{
if (
is_scalar($var)) {
echo
$var;
} else {
var_dump($var);
}
}

$pi = 3.1416;
$proteins = array("hemoglobin", "cytochrome c oxidase", "ferredoxin");

show_var($pi);
show_var($proteins)

?>

Результат выполнения приведённого примера:

3.1416
array(3) {
  [0]=>
  string(10) "hemoglobin"
  [1]=>
  string(20) "cytochrome c oxidase"
  [2]=>
  string(10) "ferredoxin"
}

Смотрите также

  • is_float() - Проверяет, представляет ли собой переменная число с плавающей точкой
  • is_int() - Проверяет, представляет ли собой переменная целое число
  • is_numeric() - Проверяет, содержит ли переменная число или числовую строку
  • is_real() - Псевдоним is_float
  • is_string() - Проверяет, представляет ли собой тип переменной строку
  • is_bool() - Проверяет, принадлежит ли переменная к логическому типу
  • is_object() - Проверяет, представляет ли собой переменная объект
  • is_array() - Определяет, представляет ли собой переменная массив

Добавить

Примечания пользователей 3 notes

up
17
Dr K
19 years ago
Having hunted around the manual, I've not found a clear statement of what makes a type "scalar" (e.g. if some future version of the language introduces a new kind of type, what criterion will decide if it's "scalar"? - that goes beyond just listing what's scalar in the current version.)

In other lanuages, it means "has ordering operators" - i.e. "less than" and friends.

It (-:currently:-) appears to have the same meaning in PHP.
up
11
Anonymous
18 years ago
Another warning in response to the previous note:
> just a warning as it appears that an empty value is not a scalar.

That statement is wrong--or, at least, has been fixed with a later revision than the one tested. The following code generated the following output on PHP 4.3.9.

CODE:
<?php
echo('is_scalar() test:'.EOL);
echo(
"NULL: " . print_R(is_scalar(NULL), true) . EOL);
echo(
"false: " . print_R(is_scalar(false), true) . EOL);
echo(
"(empty): " . print_R(is_scalar(''), true) . EOL);
echo(
"0: " . print_R(is_scalar(0), true) . EOL);
echo(
"'0': " . print_R(is_scalar('0'), true) . EOL);
?>

OUTPUT:
is_scalar() test:
NULL:
false: 1
(empty): 1
0: 1
'0': 1

THUS:
* NULL is NOT a scalar
* false, (empty string), 0, and "0" ARE scalars
up
6
efelch at gmail dot com
19 years ago
A scalar is a single item or value, compared to things like arrays and objects which have multiple values. This tends to be the standard definition of the word in terms of programming. An integer, character, etc are scalars. Strings are probably considered scalars since they only hold "one" value (the value represented by the characters represented) and nothing else.
To Top