在手冊中搜尋了一番後,我沒有找到關於什麼使類型成為「純量」的明確說明(例如,如果未來版本的語言引入了新的類型,將根據什麼標準來決定它是否為「純量」?這不僅僅是列出當前版本中的純量類型)。
在其他語言中,它表示「具有排序運算子」,例如「小於」等等。
它(-:目前:-) 在 PHP 中似乎具有相同的含義。
(PHP 4 >= 4.0.5, PHP 5, PHP 7, PHP 8)
is_scalar — 判斷變數是否為純量
判斷一個運算式是否被評估為純量值。
詳情請見純量類型。
注意:
is_scalar() 不會將 資源 類型值視為純量,因為資源是目前基於整數的抽象資料類型。不應依賴此實作細節,因為它可能會改變。
注意:
is_scalar() 不會將 NULL 視為純量。
value
要評估的變數。
範例 #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" }
在手冊中搜尋了一番後,我沒有找到關於什麼使類型成為「純量」的明確說明(例如,如果未來版本的語言引入了新的類型,將根據什麼標準來決定它是否為「純量」?這不僅僅是列出當前版本中的純量類型)。
在其他語言中,它表示「具有排序運算子」,例如「小於」等等。
它(-:目前:-) 在 PHP 中似乎具有相同的含義。
回應先前註解的另一個警告
> 僅作為一個警告,因為空值似乎不是純量。
該陳述是錯誤的——或者至少在比測試版本更新的版本中已修復。以下程式碼在 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" 都是純量
純量是單個項目或值,與具有多個值的陣列和物件等不同。就程式設計而言,這往往是該詞的標準定義。整數、字元等都是純量。字串可能被認為是純量,因為它們只保存「一個」值(由所表示的字元表示的值)而沒有其他內容。