什麼是變量?
在程序的執行過程中值可以發生變化的量,稱之為變量
如:$username="xiaosan"; //定義一個變量$username,並賦值為"xiaosan"
$username="強哥"; //變量$username的值替換為"強哥"
echo $username; //輸出變量的值到浏覽器顯示,結果:"強哥"
如何定義一個變量?
定義變量的格式:$變量名;
注意:變量名的命名規則:
①變量名由字母、數字或下劃線組成,注意:字母主要指的是24個英文字母
②變量名不能以數字或特殊字符開頭
③變量名是嚴格區分大小寫的
合法的變量名:
$username;
$_username;
$_username2;
不合法的變量名:
$2username; //錯誤,變量名不能以數字開頭
$&username; //錯誤,變量名不能是特殊字符開頭
給變量賦值:
$username="xiaosan"; //給變量$username賦值為"xiaosan"
echo gettype($username); //變量$username的類型為String字符型
$num=10; //給變量$num賦值為10
echo gettype($num); //變量$num的類型為interger型
$Score=100; //變量$Score賦值為100
echo $score; //Notice: Undefined variable: score in F:\wamp\www\index.php on line 3
對變量的一些理解:
①在php中用$符號定義變量
②變量名嚴格區分大小寫
③變量名都是以字母或下劃線開頭,不能以數字或特殊字符開頭
④php是一種若類型的語言,不需要事先聲明變量的數據類型,變量的數據類型在賦值的時候會自動聲明
什麼是自定義變量和內置變量?
自定義變量:通過 $變量名 格式 定義的變量
內置變量:php系統自帶的一些變量,可以在作用域中直接使用,有的地方叫做預定義變量或超全局變量
php中九中預定義變量
$_GET
$_POST
$_REQUEST
$_SERVER
$_ENV
$_FILES
$_COOKIE
$_SESSION
$GLOBALS
什麼是可變變量?
變量名也是一個變量的變量,叫做可變變量(可變變量又稱為變量的變量)
比如:
$one="first";
$$one="linux";
echo $one; //輸出普通變量
echo $$one; //此時變量名$one又是一個變量
echo $first; //可變變量的變量名$one被變量值first替代,與$$one等效
什麼是常量?
在程序的執行過程中,不會發生變化的量,稱之為常量
常量的定義
定義常量的格式:define(常量名,常量值,true|false);
如:define("DBHOST","127.0.0.1");
define("DBNAME","root",true);
define("dbpassword","123");
define("USERNAME","admin");
define("USERNAME","admin123");
echo DBHOST; //結果:127.0.0.1
echo $DBHOST; //錯誤:Notice: Undefined variable: DBHOST in F:\wamp\www\index.php on line 6
echo dbhost; //錯誤:Notice: Use of undefined constant dbhost - assumed 'dbhost' in F:\wamp\www\index.php on line 6 結果:dbhost
echo dbname; //結果:root
echo dbpassword; //結果:123
echo USERNAME; //Notice: Constant USERNAME already defined in F:\wamp\www\index.php on line 6 結果:admin
對常量理解的一些總結:
①常量的定義使用define()函數,而不使用$符號
②常量名習慣上使用大寫字母
③常量的命名規則與變量一樣,由字母、數字或下劃線組成,不能以數字或特殊字符開頭
④參數3:表示常量名是否區分大小寫, true-不區分大小寫 false-區分大小寫
⑤常量值一般為四種基本標量類型
⑤常量的值是固定不變的,一旦被定義,就不能被改變或取消定義
如何檢測一個常量是否被定義?
格式:defined(被檢測的常量名);
注意:如果常量被定義的話,返回true,否則返回false
如:if(defined("USERNAME")){
echo "常量已被定義";
}else{
echo "常量未被定義";
}
什麼是自定義常量和內置常量?
自定義常量:通過define()語言結構定義的常量,稱之為自定義常量
內置常量:php系統自帶的常量,這些常量在任何頁面數值都不發生改變,又叫預定義常量
常見的幾種內置常量:
PHP_VERSION: 顯示php版本號
PHP_OS: 顯示服務器的操作系統,如:windows、linux等
__FILE__: php文件名
__LINE__: php文件的行數
TRUE 真
FALSE 假
php的數據類型
php的數據類型主要包括如下幾種:
四種基本數據類型(標量類型)
整型:int,表示一個整數,如:$num=10;
浮點型:float,表示一個小數,如:$score=98.5
字符串型:String,表示一組由單引號或雙引號中括起來的一系列字符,如:$str="admin";
布爾型:boolean,主要用於條件判斷,表示真或假,如:$i=true;
注意:在浏覽器中true體現為數值1,false體現為空,即; 什麼都沒有,空白
兩種復合數據類型
數組:array
對象:object
兩種特殊數據類型
空類型:NULL
資源類型:resource
數據類型間的轉換
字符串與整型之間的轉換
如:$a="66";
$b=22;
$c=$a+$b;
$d="abc";
$e="10ddd";
echo $b+$d; //結果為整型值:22
echo $b+$e; //結果為整型值:32
echo $c; //結果為整型值:88
echo $a; //結果為字符串類型值:66
echo
echo gettype($c); //結果:interger,說明是整型
echo gettype($a); //結果:String,說明是字符串類型
總結:
①當字符串類型與整型進行運算時,字符串類型首先會轉化為整型,再參與運算
②如果參與運算的字符串內容不是以數字開頭,則在參與運算時,會自動轉換為整型值0
③如果參與元算的字符串內容以數字開頭,但不全是數字,則在參與運算時,數字開頭部分會轉換為整型參與運算
強制轉換
如:$a=1.1;
$b=(int)$a;
$c=(string)$a;
echo $a; //結果:浮點型值 1.1
echo $b; //結果:整型值 1
echo $c; //結果:字符型值 1.1
echo gettype($a); //double,代表浮點型
echo gettype($b); //interger,代表整型
echo gettype($c); //string,代表字符型
字符串的定義?
何為字符串?由單引號或雙引號括起來的一系列字符的組合
定義字符串的三種方式:
第一種:單引號
如:$str='admin';
echo $str; //浏覽器中顯示結果為:admin
$str1='$str';
echo $str1; //浏覽器中顯示結果為:$str1 , 而不是admin
總結:單引號中的變量會原樣輸出,不會被解析
在單引號中,如何顯示某些特殊符號到浏覽器?
如:echo 'his is a \'book\''; //結果:this is a 'book'
echo '$#^&'; //結果:$#^&
echo 'this is a 'book''; //Parse error: syntax error, unexpected T_STRING, expecting ',' or ';' in F:\wamp\www\index.php on line 8
echo 'this is a "book"'; //結果:this is a "book"
總結:
①若想在單引號中嵌套單引號,需要在前面使用轉義符"\"
②若想在單引號中將其它特殊符號顯示出來,不需要使用轉義符"\"
③單引號中是不能再嵌套單引號的,如果非要嵌套的話,必須使用轉義符"\"
④單引號中可以嵌套雙引號,雙引號可以不用轉義符"\"
第二種:雙引號
如:$str="admin";
echo $str; //浏覽器中顯示結果為:admin
$str1="$str";
echo $str1; //浏覽器中顯示結果為:admin
總結:雙引號中的變量會被解析
在雙引號中,如何顯示某些特殊符號到浏覽器?
如:echo ''this is a \"book\""; //結果:this is a "book"
echo "$#^&"; //結果:$#^&
echo "this is a "book""; //Parse error: syntax error, unexpected T_STRING, expecting ',' or ';' in F:\wamp\www\index.php on line 8
echo "this is a 'book'"; //結果:this is a 'book'
echo "\$str"; //結果:$str
總結:
①若想在雙引號中嵌套雙引號,需要在前面使用轉義符"\"
②若想在雙引號中將其它特殊符號顯示出來,不需要使用轉義符"\"(標注:變量除外)
③若想在雙引號中將變量名前的$符號顯示出來,必須使用轉義符"\"
④雙引號中是不能再嵌套雙引號的,如果非要嵌套的話,必須使用轉義符"\"
⑤雙引號中可以嵌套單引號,單引號可以不用轉義符"\"
第三種:定界符
定界符定義字符串的格式:
$str=<<<xxx
字符串內容
xxx;
注意:
①xxx為定界符的開始與結束,名稱可以自己命名
②定界符的結束必須單獨占一行,並且在行首,前面不能有空格
③定界符中的變量會被解析
④若想在定界符中顯示某些特殊符號,不需要在前面使用轉義符"\"(變量除外)
⑤若想在定界符中顯示變量前的$符號,需要使用轉義符"\"
特殊字符在字符串中的應用
在php中,有一些常用的特殊字符代表著特殊的含義
如:\n //代表換行
\t //代表制表符
\r //代表回車
\\ //代表一個反斜槓
單引號中的這些特殊字符會被原樣輸出,不會被解析為特殊含義
如:echo ''hello\nworld; //結果:hello\nworld
雙引號中的這些特殊字符會被解析為特殊含義
如:echo "hello\nworld"; //結果:hello world ,在浏覽器中顯示一行,在源代碼中顯示兩行,因為html中的換行符只認<br/>標簽。