title: PHP數據類型
date: 2018-5-18
categories:php
PHP 有8種數據類型:html
函數 | 檢測類型 | 舉例 |
---|---|---|
is_bool | 檢測變量是不是布爾類型 | is_bool(true),is_bool(false) |
is_string | 檢測變量是不是字符串類型 | is_string('string'),is_string(1234) |
is_integer/is_int | 檢測變量是否爲整數 | is_integer(34),is_integer('34') |
is_float/is_double | 檢測變量是否爲浮點類型 | is_float(3.1415),is_float('3.1415') |
is_array | 檢測變量是否爲數組類型 | is_array($arr) |
is_object | 檢測變量是不是一個對象類型 | is_object($obj) |
is_null | 檢測變量是否爲null | is_null(null) |
is_numeric | 檢測變量是否爲數字或數字組成的字符串 | is_numeric('5'),is_numeric('bccd110' |
在 PHP 中,用 definie() 函數來定義,基本格式:
define( $'變量名',常量表示的值,是否對大寫敏感(可選參數,bool值));
數組
例如:函數
<?php header("Content-type:text/html;charset=utf-8"); define('MY_NAME', '沫沫'); define('MY_AGE', '20'); define('MY_HOBBY', '看小說睡懶覺'); echo '本府'.MY_NAME.',年芳'.MY_AGE.',尤好'.MY_HOBBY.'。'; function useConst(){ echo '<p>函數名字叫:'.`__FUNCTION`__; } echo '<p>這是第'.__LINE__.'行'; echo '<p>本文件的絕對路徑爲:'.__FILE__; useConst(); ?>
名稱 | 說明 |
---|---|
__LINE__ |
文件中的當前行號。 |
__FILE__ |
文件的完整路徑和文件名。若是用在被包含文件中,則返回被包含的文件名。自 PHP 4.0.2 起,__FILE__ 老是包含一個絕對路徑(若是是符號鏈接,則是解析後的絕對路徑),而在此以前的版本有時會包含一個相對路徑。 |
__DIR__ |
文件所在的目錄。若是用在被包括文件中,則返回被包括的文件所在的目錄。它等價於 dirname(__FILE__) 。除非是根目錄,不然目錄中名不包括末尾的斜槓。(PHP 5.3.0中新增) |
__FUNCTION__ |
函數名稱(PHP 4.3.0 新加)。自 PHP 5 起本常量返回該函數被定義時的名字(區分大小寫)。在 PHP 4 中該值老是小寫字母的。 |
__CLASS__ |
類的名稱(PHP 4.3.0 新加)。自 PHP 5 起本常量返回該類被定義時的名字(區分大小寫)。在 PHP 4 中該值老是小寫字母的。類名包括其被聲明的做用區域 |
__TRAIT__ |
Trait 的名字(PHP 5.4.0 新加)。自 PHP 5.4 起此常量返回 trait 被定義時的名字(區分大小寫)。Trait 名包括其被聲明的做用區域。 |
__METHOD__ |
類的方法名(PHP 5.0.0 新加)。返回該方法被定義時的名字(區分大小寫)。 |
__NAMESPACE__ |
當前命名空間的名稱(區分大小寫)。此常量是在編譯時定義的(PHP 5.3.0 新增)。 |
PHP中布爾值 true 和 false 不區分大小寫。
如下值被認爲是 false:學習
單、雙引號
雙引號中所包含的變量會自動被替換長實際數值。
單引號中包含的變量則會按普通字符輸出。code
轉義字符htm
HereDoc
注意:結尾的標識符前面不能有空格。對象
varry(value1, value2, ......)
或utf-8
varry(key1 => value1, key2 => value2, ......)
$my_array[key1] = value1; $my_array[key2] = value2; ......
不區分大小寫。資源
知足如下條件之一時,變量的值爲NULL:
強轉類型 | 功能描述 |
---|---|
(boolean) | 強轉爲Boolean類型 |
(string) | 強轉爲字符串類型 |
(integer) | 強轉爲整型 |
(float) | 強轉爲浮點型 |
(array) | 強轉爲數組 |
(object) | 強轉爲對象 |
看下面的代碼,能夠說你絕對不可能說出正確的答案。
<?php echo (int) 123.999999999999999; echo (int) -1.999999999999999; echo (int) -1.9999999999999999; echo (int) -0.99999999999999999; echo (int) -10.999999999999999; echo (int) -1000.9999999999999; echo (int) -9999999999; ?>
下面來看看我獲得的結果。
首先要說明下個人系統環境:Windows10 64位
獲得的結果以下
124 -1 -2 -1 -10 -1000 -1410065407
官方給出的說法是: 當從浮點數轉換成整數時,將向零取整。
若是浮點數超出了整數範圍(一般爲 +/- 2.15e+9 = 2^31),則結果不肯定,由於沒有足夠的精度使浮點數給出一個確切的整數結果。在此狀況下沒有警告,甚至沒有任何通知!
那麼,咱們來看下面的這個例子。
echo (int) ( (0.1+0.7) * 10 );
不用猜了,這裏的執行結果是---7!
對,你沒看錯,我也沒敲錯,結果是 7 ,而不是咱們一般認爲的 8 。
PHP官方有這麼一句警告: 決不要將未知的分數強制轉換爲 integer,這樣有時會致使不可預料的結果。
因此在進行強制類型轉換的時候必定要慎重!大數值,高精度,分數都要慎用!
固然,上面的那個例子能夠這樣來處理。
<?php $num = (0.1 + 0.7) * 10; echo (int) $num; //輸出7 (int)$num2 = (0.1 + 0.7) * 10; echo $num2; //輸出8 ?>
<?php header("Content-type:text/html;charset=utf-8"); $a = '今年是'; $b = 2018; $c = '年。'; $d = $a.$b.$c; echo $d; $e = '請叫我'; $f = '小沫'; $g = "{$e}{$f}"; echo $g; ?>