變數的型別及轉化 常量(超級全)

2021-07-08 13:50:11 字數 4394 閱讀 6930

php 支援八種原始型別 --- var_dump( )。 

四種標量型別: 

布林型(boolean) 

整型(integer)

浮點型(float)(浮點數,也作double) 

字串(string) 

兩種復合型別: (乙個變數存多個值)

陣列(array) 

物件(object) 

最後是兩種特殊型別: 

資源(resource)

null

<?php 

echo "以下是4種標量:

"; $var = true;

var_dump($var); //boolean

echo "

"; $var = 10;

var_dump($var); //int

echo "

"; $var = 10.12;

var_dump($var); //float

echo "

"; $var = "hello world";

var_dump($var); //string

echo "

"; echo "以下是兩種復合型別:

"; $var = array("one", "two", "three");

var_dump($var); //array

echo "

"; class demo

$var = new demo;

var_dump($var); //object

echo "

"; echo "以下輸出兩種特殊的型別:

bool 型別:

允許if($bool)

假值只有以下幾種:

boolean false int:0 float:0.0 string: "" "0" array()空串 object:無單元物件(php4)    null

整型與浮點型:

php不支援無符號,溢位轉float 不區分double float 不能用==判等

字串的定義

string是一系列字元。在 php 中,字元和位元組一樣,也就是說,一共有 256 種不同字元的可能性。這也暗示 php 對 unicode 沒有本地支援。

注: 乙個字串變得非常巨大也沒有問題,php 沒有給字串的大小強加實現範圍,所以完全沒有理由擔心長字串。

單引號:指定乙個簡單字串的最簡單的方法是用單引號(字元 ')括起來。 

要表示乙個單引號,需要用反斜線(\)轉義,和很多其它語言一樣。如果在單引號之前或字串結尾需要出現乙個反斜線,需要用兩個反斜線表示。注意如果試圖轉義任何其它字元,反斜線本身也會被顯示出來!所以通常不需要轉義反斜線本身。

注: 單引號字串中出現的變數不會被變數的值替代

雙引號:如果用雙引號(")括起字串,php 懂得更多特殊字元的轉義序列: 

注:雙引號字串最重要一點是其中的變數名會被變數值替代。此外,如果試圖轉義任何其它字元,反斜線本身也會被顯示出來!

定界符:另一種給字串定界的方法使用定界符語法(「<<

定界符中識別符號的命名規則與變數的命名規則一樣。只能包含字母數字下劃線,而且必須以下劃線或非數字字元開始。

注:結束識別符號所在的行不能包含任何其它字元,可能除了乙個分號(;)之外。這尤其意味著該結束識別符號不能被縮排,而且在分號之前和之後都不能有任何空格或製表符。如果破壞了這條規則使得結束識別符號不「乾淨」,則它不會被視為結束識別符號,php 將繼續尋找下去。如果在這種情況下找不到合適的結束識別符號,將會導致乙個在指令碼最後一行出現的語法錯誤。 

不能用定界符語法初始化類成員。用其它字串語法替代。

定界符文字的表現和雙引號字串一樣,只是沒有雙引號

php的其它資料型別

強制轉化:

var_dump();

gettype(變數);

1. settype(變數, 型別);  ----- 是將原變數給轉換(型別寫int integar都可以)

2. 在變數使用時,前面加上型別符號,轉 ---- 是在賦值時給新變數乙個新型別,原變數型別不變

3. intval(), floatval()  strval();轉化成int /float/string

自動轉化:

見上圖 p.s.float->int時若上溢則取int 的最大值    字串轉化成整型只取開頭的連續數字,若字串開頭沒有數字,轉化失敗,返回0

測試函式:

變數型別的測試函式:

is_bool():判斷是否是布林型

is_int()、is_integer()和is_long():判斷是否為整型。

is_float()、is_double()和is_real():判斷是否為浮點型

is_string():判斷是否為字串

is_array():判斷是否為陣列

is_object():判斷是否為物件

is_resource():判斷是否為資源型別

is_null():判斷是否為null

is_scalar():判斷是否為標量

is_numberic():判斷是否是任何型別的數字和數字字串

is_callable():判斷是否是有效的函式名

函式:bool settype ( mixed var, string type ) 是將變數 var 的型別設定成 type。 

常量

常量是乙個簡單值的識別符號(名字)。如同其名稱所暗示的,在指令碼執行期間乙個常量一旦被定義,就不能再改變或取消定義。常量預設為大小寫敏感。按照慣例常量識別符號總是大寫的。

常量名和其它任何 php 標籤遵循同樣的命名規則。合法的常量名以字母或下劃線開始,後面跟著任何字母,數字或下劃線。

常量的範圍是全域性的。不用管作用域就可以在指令碼的任何地方訪問常量。

我們可以用 define() 函式來定義常量。

常量: 一旦宣告, 這個常量的值就 不會被改變

* 1. 常量是使用函式 define()宣告的

* 2. 如果常量沒有宣告, 則常量名在使用時, 會自動轉為字串(效率很低)

* 3. 常量名稱,不要加 $符號

* 4. 常量名稱,預設是區分大小寫的  one two three  onetwothree, 習慣上常量名稱要全部大寫

* 5. 可以使用define()第三個引數來決定是否讓這個常量名稱區分大小寫 true false     預設false是區分

* 6. 常量的值只支援標量資料型別

* 7 . 常量不能使用 unset() 清除乙個常量 

* 8. 可以使用defined(); 判斷乙個常量是否存在

$root = "localhost";

define("root", 10, true);

if(defined("root")) else

echo constant("root");

echo root;

echo '

'; var_dump(get_defined_constants());//用來獲取已定義的常量列表

魔術常量:雖然是常量 但是在不同地方出現代表值不同

<?php 

class demo

} $d=new demo;

$d->test();

p.s。都過去20天了,才學到這裡

PHP學習筆記(07) (超級全域性變數及常量)

1.get 位址列上獲得的值 2.post post表單傳送的資料 3 request 既有get,也有post的內容 4.session 5.cookie 6.files 7.env 伺服器作業系統的環境變數,如作業系統型別,linux,win,mac,環境變數等等 8.server 9.glob...

Java常量和變數及資料型別

常量的命名規範 所有字母全部大寫,多個單詞之間用下劃線連線。看下面的demo public class demo1 解釋最後一條輸出語句,輸出基本資料型別double的最小值,min value為最小值,顯然是個常量。還有比較常見的乙個常量是 pi 就是3.1415926 注意 程式設計規範中,類名...

c語言中的變數及常量

變數 char 字元型變數,長度為乙個位元組 short 短整形,長度為兩個位元組 int 整形變數,長度為四個位元組 定義整形變數時優先考慮使用int long 長整形變數,長度為四個位元組 long long 更長的整形變數,長度為八個位元組 float 單精度浮點數,長度為四個位元組 doub...