2019.3.15 Blazar 實驗樓
* 實驗環境
PHP 7.2
Ubuntu 14.04
* 數據類型
PHP 的四種標量數據類型,分別是boolean(布爾型)、integer(整型)、float(浮點型,也稱作 double)、string(字符串)。然後介紹了字符串的 4 中定義方式,單引號,雙引號,Heredoc 和 Nowdoc。
-
PHP 支持 8 種原始數據類型。
四種標量類型:
- boolean(布爾型)
- integer(整型)
- float(浮點型,也稱作 double)
- string(字符串)
兩種複合類型:
- array(數組)
- object(對象)
最後是兩種特殊類型:
- resource(資源)
- NULL(無類型)
<?php
$a = TRUE;
$b = "foo";
$c = 0.1;
$d = 12;
if (is_string($b)) {
echo "$b 是字符串".PHP_EOL;
}
if (is_int($c)) {
echo "$c 是整型".PHP_EOL;
}
var_dump($a);
var_dump($b);
echo gettype($c).PHP_EOL;
echo gettype($d);
執行
$ php test.php
-
Boolean 布爾類型
布爾類型表達了真值,可以爲 TRUE 或 FALSE,不區分大小寫。
<?php $a = True; $b = False; var_dump($a);// bool(true) var_dump($b);// bool(false)
運算符返回 boolean 類型的結果:
<?php
// == 是一個操作符,它檢測兩個變量值是否相等,並返回一個布爾值
if ($a == "say_hello") {
echo "Hello World";
}
// $b 的值是否爲 true:
if ($res) {
echo "This is true";
}
- ** 注意**當下列情況轉換爲 Boolean 時,其值爲 FALSE
- 布爾值 FALSE 本身
- 整型值 0(零)
- 浮點型值 0.0(零)
- 空字符串,以及字符串 “0”
- 不包括任何元素的數組
- 特殊類型 NULL(包括尚未賦值的變量)
- 從空標記生成的 SimpleXML 對象
-
Integer 整型
- 整型值可以使用十進制,十六進制,八進制或二進制表示,前面可以加上可選的符號(- 或者 +)。整數溢出
- 如果給定的一個數超出了 integer 的範圍,將會被解釋爲 float。同樣如果執行的運算結果超出了 integer 範圍,也會返回 float。
<?php
$a = 123445566;
$b = 9223372036854775807;
$c = 9223372036854775808;
$d = 50000000000000 * 1000000;
var_dump($a);
var_dump($b);
var_dump($c);
var_dump($d);
執行 php test.php
( 更改了部分數字)
-
Float 浮點型
- 浮點型(也叫浮點數 float,雙精度數 double 或實數 real)
- 浮點數的字長和平臺相關,通常最大值是 1.8e308 並具有 14 位十進制數字的精度(64 位 IEEE 格式)
-
String 字符串類型
一個字符串 string 就是由一系列的字符組成,其中每個字符等同於一個字節,PHP 中有 4 中表達方式:
1 . 單引號
單引號內特殊字符和變量不會被解析(類似於字符串直接打印
<?php $a = 'Hello'; echo '$a \n World';//$a \n World
2 . 雙引號
雙引號內的特殊字符和變量會被解析。
```php
<?php
$a = 'Hello';
/**
* Hello
* php World
*/
echo "$a \nphpWorld";
3 . Heredoc
Heredoc 類似與雙引號,內部轉義字符和變量可以被解析,句法結構爲
<<<EOT
字符串
EOT;
其中 EOT
爲標識符,可以自定義,但是首尾標識符必須相同。 開始標識符 EOT 後需換行,結束標識符 EOT 必須獨佔一行,且前面不許有空格。
<?php
$a ='Hello' ;
echo <<<EOT
$a Hello
EOT;
4 . Nowdoc
Nowdoc 類似於單引號,無法解析轉移字符和變量。句法結構類似 Heredoc,但是需要在開始標識符加上單引號。
<?php
$a ='Hello' ;
echo <<<'EOD'//和 Heredoc 不同點
$a Hello
EOD;
編輯 test.php
<?php
$a = 'Hello';
$b = '$a World';
$c = "ShiYanLou";
$c = <<<EOT
$a \n World
EOT;
$d = <<<'EOT'
$a \n $c
EOT;
var_dump($b);
var_dump($c);
var_dump($d);
執行 php test.php