《我的php學(xué)習(xí)第二十一天——php變量,PHP的數(shù)據(jù)類型》要點(diǎn):
本文介紹了我的php學(xué)習(xí)第二十一天——php變量,PHP的數(shù)據(jù)類型,希望對您有用。如果有疑問,可以聯(lián)系我們。
PHP變量
1)不需要提前定義,使用時直接賦一個值即可.
2)PHP的變量的命名規(guī)則,跟JS一樣,允許的字符有:大小寫英文字母、0-9、_
3)PHP的變量必須以美元符號$開頭;例如:$name=“周更生”;
4)PHP的變量區(qū)分大小寫
5)PHP的關(guān)鍵字和函數(shù)名,不分區(qū)大小寫,建議一律用小寫;
6)PHP對于多個單詞構(gòu)成的變量名
下劃線方式:$get_user_name
駱峰命名方式:$getUserName
7)同一變量,多次定義,后面的變量會覆蓋前面的同名變量
<?php
$name; //變量定義了,但沒有賦值
var_dump($name); //返回一個NULL
?>
PHP的數(shù)據(jù)類型
1)基本數(shù)據(jù)類型(標(biāo)量數(shù)據(jù)類型): 整型(int)、浮點(diǎn)數(shù)(float)、布爾型(boolean)、字符型(string)
2)復(fù)合數(shù)據(jù)類型:對象(obj)、數(shù)組(array)
PHP中的對象,只有自定義對象,沒有所謂的“內(nèi)置對象”.
面向?qū)ο缶幊?MVC的架構(gòu).
3)特殊數(shù)據(jù)類型:資源型、NULL
資源型:主要拜訪或操作“外部”的數(shù)據(jù)或文件時,將返回一個“資源型”的標(biāo)識.
如:連接MySQL數(shù)據(jù)庫時,會返回一個“資源”標(biāo)識符,說明數(shù)據(jù)庫已經(jīng)連通.
只有數(shù)據(jù)庫連通以后,才能做“后續(xù)工作”:選擇數(shù)據(jù)庫、設(shè)置字符集、增、刪、改、查.
NULL:一個變量定義了,但沒有賦值.如果你使用“unset()”刪除了變量的值,則同樣返回NULL
$school = NULL;
unset($name);
PHP常量
常量:就是一個永遠(yuǎn)不變的量,就叫“常量”.比如:連接數(shù)據(jù)庫的“主機(jī)名”、“用戶名”、“暗碼”、ICP備案號
第一步:定義常量
格式:define(name,value);
舉例:define(“DB_HOST”, “192.168.3.100”);
define(“WEB_ICP”,“京1102342312312”)
define(“WEB_NAME”,“南寧有限公司公司”)
define(“WEB_ADDRESS”,“南寧市青秀區(qū)青秀萬達(dá)”)
第二步:判斷常量
格式:defined(name)
if(defined(“DB_HOST”))
{
echo “MySQL的主機(jī)IP地址:”.DB_HOST;
}
2.for循環(huán)語句
1、語法格式:
for(變量初始化;條件判斷表達(dá)式;變量更新)
{
循環(huán)執(zhí)行的程序代碼;
}
2、舉例說明
//輸出1-100間,所有的偶數(shù),的和
$sum = 0;
for($i=1;$i<=100;$i++)
{
//找出1-100間所有的偶數(shù)
if( $i % 2 == 0 )
{
//這里出來的數(shù),都是偶數(shù)
$sum += $i;
}
}
3.賦值傳值和引用傳址
1、賦值傳值
所謂的“賦值傳值”,就是將一個變量的值,“拷貝”一份傳給另一個變量.
那么,這兩個變量沒有任何聯(lián)系,是相互獨(dú)立的.
在PHP中,默認(rèn)的傳值方式就是“賦值傳值”,比如:基本數(shù)據(jù)類型、數(shù)組、NULL
$a = 100;
$b = $a; // 將變量$a的值,傳給了變量$b
$b = 200; // 對變量$b重新賦值
echo $a; //$a = 100 ,變量$a的值并沒有改變
2、引用傳址
所謂的“引用傳址”,就是將一個變量的“地址”,“拷貝”一份傳給另一個變量.
因此,這兩個變量指向的是同一個“地址”,或者是同一個“地方”,相當(dāng)于一個人有兩個名字:大名、小名.
“引用傳址”中兩個變量,只要有一個變量的值修改了,則另一個變量的值也跟著變.
這兩個變量是有聯(lián)系的,不是獨(dú)立的.
在PHP中,引用傳址的數(shù)據(jù)類型是:資源、對象.
注意:在PHP中,任何數(shù)據(jù)類型都可以“引用傳址”.通過一個“&”來“引用”變量.
//引用傳址
$a = 100; //定義變量,并賦值
$b = &$a; // 用&號將變量$a的“地址”,復(fù)制一份,傳給了變量$a
$b = 200; //對$b重新賦值
echo $a; // $a = 200,$a和$b指向了“同一個地方、地址”
4.數(shù)組的概念
數(shù)組是一組數(shù)的集合.
假設(shè):一個老太太,養(yǎng)了50000只雞,雞一重量分別是:1.5斤、2斤、2.5斤、3.0斤、50斤,……,求所有雞的平均重量?
$hen1 = 1.5;
$hen2 = 2;
$hen3 = 2.5;
$hen4 = 3;
$hen5 = 50;
$sum = $hen1+$hen2+$hen3+$hen4+$hen5;
$avg = $sum/5;
//用數(shù)組來實(shí)現(xiàn)
$arr = array(1.5,2,3,4,5,3.5,6,56,54,34,34,32);
$sum = array_sum($arr);
$count = count($arr);
$avg = $sum/$count
2、數(shù)組分類
1)枚舉數(shù)組(數(shù)字索引數(shù)組):下標(biāo)是非負(fù)整數(shù).$arr[0]=100
2)關(guān)聯(lián)數(shù)組(字符下標(biāo)):下標(biāo)是字符串.$arr[“name”]=“張立峰”
3)混合數(shù)組:即有字符下標(biāo),也有數(shù)字下標(biāo).$arr[“contact”][0] = “13011057863”
4)多維數(shù)組:數(shù)組的元素,還是一個數(shù)組.
3、數(shù)組的創(chuàng)建
1)使用[ ]符號來創(chuàng)建數(shù)組
$arr[0] = 0; //JS中創(chuàng)建數(shù)組 var arr = [1,2,3,4];
//如果[]中沒有指定下標(biāo),則創(chuàng)建一個最大數(shù)值下標(biāo)+1的元素
$arr[] = 1; //JS中的下標(biāo)必須有值,不能為空
$arr[10]= 10;
$arr[] = 11; //下標(biāo)為11
$arr[“name”]=“張三”;
$arr[] = 100; //下標(biāo)為12
//使用print_r()直接可以打印輸出所有的數(shù)組元素
print_r($arr);
<?php
//創(chuàng)建數(shù)組
$arr[] = 0;
$arr[] = 1;
$arr[] = 2;
$arr["name"] = "張三";
$arr["sex"] = true;
$arr["age"] = 30;
$arr[99] = 99;
$arr[] = "北京大學(xué)";
//通過print_r()測試數(shù)組
dump($arr);
//定義函數(shù)
function dump($arr)
{
echo "<pre>";
print_r($arr);
echo "</pre>";
}
?>
2)使用array()函數(shù)來創(chuàng)建
格式一:$arr = array(value1,value2,value3,value4,……);
舉例:$arr = array(34,34,65,67,78,”abc”,true,NULL);
格式二:$arr=array(key=>value,key=>value,……);
說明:
Key就是指下標(biāo),可以是字符下標(biāo),也可以是數(shù)字下標(biāo);
Value就是數(shù)組元素的值,可以是任何類型;
=>叫“重載下標(biāo)”符號,重新指定一個下標(biāo);
舉例:
$arr = array(
“name”=>”張三”,
“sex”=>“男”
“isMarried”=>true,
10=>100, //數(shù)字下標(biāo)從10開始
200,300 //200的下標(biāo)為11,300的下標(biāo)為12
);
5.數(shù)組的常用函數(shù)
print_r()
含義:打印變量的信息,如果是基本數(shù)據(jù)類型的變量,直接輸出值,如果是數(shù)組,則以一定的格式來輸出
格式:bool print_r($var)
返回值:布爾值
unset()
含義:刪除一個數(shù)組元素、一個變量、一個對象的屬性.
格式:unset($var)
注意:如果刪除一個數(shù)組元素,則數(shù)組還在下標(biāo)依然保存(跟JS一樣delete)
如果使用unset刪除一個數(shù)組,則數(shù)組中的所有數(shù)據(jù)消失,并且數(shù)組的索引會重建
foreach()
含義:遍歷循環(huán)數(shù)組,只能應(yīng)用于數(shù)組.
格式:
foreach($arr as [$key=>]$value)
{
echo $value;
echo $arr[$key];
}
注意:$key即可以是數(shù)字,也可以是字符.
count()
含義:統(tǒng)計數(shù)組元素的個數(shù),默認(rèn)情況下只統(tǒng)計一維數(shù)組.
格式:int count($arr[,mode])
參數(shù):mode為可選,如果設(shè)為1,則統(tǒng)計多維數(shù)組
array_reverse()反轉(zhuǎn)數(shù)組中的元素
array_shift():刪除數(shù)組中的第一個元素,且長度減1
array_pop():刪除數(shù)組中的最后一個元素,且長度減1
array_unshift():在數(shù)組的開頭增加一個元素,長度加1
array_push():在數(shù)組的末尾增加一個元素,長度加1
說明:上述四個對數(shù)組操作的函數(shù),返回值是“刪除或增加”的那一個元素的值.
6.
7.函數(shù)的概念
函數(shù)就是將一段常用的代碼(封裝)進(jìn)行命名.
假設(shè):我們求以下N個數(shù)組中的最大值和最小值
$arr1 = array(1,2,3,4);
$arr2 = array(2,3,2,1);
$arr3 = array(5,6,4,2);
……
8.語法結(jié)構(gòu)
function functionName([參形,參形2,參形3,……])
{
函數(shù)功能的代碼;
[return 值];
}
語法結(jié)構(gòu)的說明:
1)function是關(guān)鍵字,在PHP中,不區(qū)分大小寫;
2)functionName是函數(shù)的名稱,命名規(guī)則跟變量一樣,但前面不加“$”符號;
3)定義函數(shù)時的參數(shù)叫“形式參數(shù)”,調(diào)用函數(shù)時的參數(shù)叫“實(shí)際參數(shù)”
4)函數(shù)可以沒有參數(shù),但小括號不能省略;
5)函數(shù)中,可以使用return語句向調(diào)用者,返回一個值;return語句執(zhí)行后,會立即結(jié)束函數(shù)的運(yùn)行,因此return語句一般放在定義函數(shù)的最后;
6)函數(shù)定義后,必須在某個地方調(diào)用;只定義函數(shù),函數(shù)是不會執(zhí)行的,只有調(diào)用函數(shù)才會執(zhí)行;
7)函數(shù)不能存在同名函數(shù)(不支持函數(shù)的重載),但在JS中可以;
9.函數(shù)參數(shù)
(1)值傳遞(復(fù)制)
默認(rèn)參數(shù)傳遞,是將一個變量的值,復(fù)制一份傳遞給函數(shù)了.
showInfo(“周更生”); //調(diào)用函數(shù)
function showInfo($name)
{
echo “$name 的年齡是30歲”;
}
(2)引用傳遞
引用參數(shù)傳遞,是將一個變量的“地址”,傳遞給函數(shù)了.可以在函數(shù)中,直接修改變量的值.修改完后,不管是函數(shù)內(nèi),還是在函數(shù)外,這個變量都會發(fā)生改變.
在定義函數(shù)時,在參數(shù)前加一個“&”號,就是引用外部的變量地址.
(3)默認(rèn)參數(shù)傳遞
在定義函數(shù)時,可以指定默認(rèn)的參數(shù)(給參數(shù)賦一個默認(rèn)的值).
默認(rèn)參數(shù),必須放在普通參數(shù)的右邊.
function showInfo($who,$sport=“打游戲”)
{
echo “$who 正在 $sport”;
}
//調(diào)用函數(shù)
showInfo(“張三”); //$result = 張三正在打游戲
showInfo(“李四”,”上網(wǎng)”); //$result = 李四正在上網(wǎng)
10.函數(shù)變量的作用域:全局變量和局部變量
JS中在函數(shù)外定義的變量叫“全局變量”,“全局變量”可以在函數(shù)內(nèi)使用.
JS中的局部變量只能在函數(shù)內(nèi)使用.
在PHP中,在函數(shù)外定義的變量,在函數(shù)內(nèi)不能拜訪;當(dāng)然,函數(shù)內(nèi)的變量,在函數(shù)外也不能拜訪.
在函數(shù)中,使用關(guān)鍵字global來聲明為“全局變量”,這樣后,在函數(shù)內(nèi)外都能拜訪.
$name = "張三";
showInfo();
//輸出$name的值
echo $name;
//定義函數(shù)
function showInfo()
{
//聲明為全局變量
global $name;
$name = "張三";
echo "$name 的年齡是30歲!<br>";
}
11.日期時間函數(shù)
date()函數(shù)
在PHP中,輸出日期時間的相關(guān)信息,只需要使用date( )函數(shù).
格式:string date(string format[,int timestamp])
參數(shù):
format:是指輸出的日期和時間的格式字符,比如:date(“Y-m-d H:i:s”)
timestamp:是可選項(xiàng).如果省略,以當(dāng)前時間為準(zhǔn)(1970年1月1日到現(xiàn)在的秒數(shù)),也可以自己定義一個timestamp.
舉例:
echo date("Y年m月d日 H:i:s z l");
time()今天距離Unix紀(jì)元(1970年1月1日)
mktime()根據(jù)指定的日期時間信息,得到距離Unix紀(jì)元過去了多少秒
格式:int mktime([hour][,minutes][,seconds][,month][,day][,year])
說明:
參數(shù)的順序,必須是“時分秒月日年”
參數(shù)可以從右向左省略,省略的部分用當(dāng)前時間的對應(yīng)部分來代替.
返回值:是一個整數(shù),距離Unix紀(jì)元過去了多少秒
舉例:mktime(0,0,0,10,20,1980)
//計算:張三今天多大了?
//出生日期:1980-10-20
//(1)先求出今天距離Unix紀(jì)元過去了多少秒
$today = time();
//(2)出生日期距離Unix紀(jì)元過去了多少秒
$yestoday = mktime(0,0,0,10,20,1980);
//(3)求兩個時間的差
$result = ceil(($today - $yestoday)/(60*60*24*365));
echo "張三本年{$result}歲了!";
《我的php學(xué)習(xí)第二十一天——php變量,PHP的數(shù)據(jù)類型》是否對您有啟發(fā),歡迎查看更多與《我的php學(xué)習(xí)第二十一天——php變量,PHP的數(shù)據(jù)類型》相關(guān)教程,學(xué)精學(xué)透。維易PHP學(xué)院為您提供精彩教程。
轉(zhuǎn)載請注明本頁網(wǎng)址:
http://www.snjht.com/jiaocheng/7170.html