數字是八進制的嗎?
簡單易懂
<?php
function is_octal($x) {
return decoct(octdec($x)) == $x;
}
echo is_octal(077); // true
echo is_octal(195); // false
?>
感謝
[]'s
(PHP 4, PHP 5, PHP 7, PHP 8)
octdec — 八進位轉十進位
octal_string
要轉換的八進位字串。 octal_string
中的任何無效字元都會被忽略。從 PHP 7.4.0 開始,提供任何無效字元已被棄用。
octal_string
的十進位表示
版本 | 說明 |
---|---|
7.4.0 | 傳遞無效字元現在會產生棄用通知。結果仍會像無效字元不存在一樣計算。 |
範例 #1 octdec() 範例
<?php
echo octdec('77') . "\n";
echo octdec(decoct(45));
?>
以上範例會輸出
63 45
數字是八進制的嗎?
簡單易懂
<?php
function is_octal($x) {
return decoct(octdec($x)) == $x;
}
echo is_octal(077); // true
echo is_octal(195); // false
?>
感謝
[]'s
在上述範例中,Unix 檔案存取權限的「S」旗標計算錯誤。
如果未設定對應的「x」位元(執行),且設定了「s」位元(setgid/setuid/sticky),則旗標不應顯示為大寫「S」,而應顯示為小寫「s」。此外,sticky 位元(主要用於具有公共讀寫權限的資料夾,例如 /tmp,以防止非所有者刪除)的名稱錯誤(「text」?)。
將 sticky 位元稱為「text」並非錯誤:在 1974 年的 UNIX 中,它指示作業系統在程序結束後將程式的文字區段保留在交換空間中。這可以透過允許核心執行單一操作將程式從交換空間移至實際記憶體來加快後續的執行速度。