PHP Conference Japan 2024

is_scalar

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

is_scalar 判斷變數是否為純量

說明

is_scalar(混合 $value): 布林

判斷一個運算式是否被評估為純量值。

詳情請見純量類型

注意:

is_scalar() 不會將 資源 類型值視為純量,因為資源是目前基於整數的抽象資料類型。不應依賴此實作細節,因為它可能會改變。

注意:

is_scalar() 不會將 NULL 視為純量。

參數

value

要評估的變數。

返回值

如果 value 是純量,則返回 true,否則返回 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"
}

參見

新增註解

使用者貢獻的註解 3 則註解

17
Dr K
19 年前
在手冊中搜尋了一番後,我沒有找到關於什麼使類型成為「純量」的明確說明(例如,如果未來版本的語言引入了新的類型,將根據什麼標準來決定它是否為「純量」?這不僅僅是列出當前版本中的純量類型)。

在其他語言中,它表示「具有排序運算子」,例如「小於」等等。

它(-:目前:-) 在 PHP 中似乎具有相同的含義。
11
匿名
18 年前
回應先前註解的另一個警告
> 僅作為一個警告,因為空值似乎不是純量。

該陳述是錯誤的——或者至少在比測試版本更新的版本中已修復。以下程式碼在 PHP 4.3.9 上產生以下輸出。

程式碼
<?php
echo('is_scalar() 測試:'.EOL);
echo(
"NULL: " . print_R(is_scalar(NULL), true) . EOL);
echo(
"false: " . print_R(is_scalar(false), true) . EOL);
echo(
"(空): " . print_R(is_scalar(''), true) . EOL);
echo(
"0: " . print_R(is_scalar(0), true) . EOL);
echo(
"'0': " . print_R(is_scalar('0'), true) . EOL);
?>

輸出
is_scalar() 測試:
NULL
false: 1
(空): 1
0: 1
'0': 1

因此
* NULL 不是純量
* false、(空字串)、0 和 "0" 都是純量
6
efelch at gmail dot com
19 年前
純量是單個項目或值,與具有多個值的陣列和物件等不同。就程式設計而言,這往往是該詞的標準定義。整數、字元等都是純量。字串可能被認為是純量,因為它們只保存「一個」值(由所表示的字元表示的值)而沒有其他內容。
To Top