變量
- 變量:它是內(nèi)存中用于臨時(shí)存儲(chǔ)數(shù)據(jù)的一個(gè)空間,這個(gè)空間的名字就是變量
-
變量名必須區(qū)分大小寫(xiě)
项贺,其余函數(shù)名君躺,方法名,類名都不區(qū)分大小寫(xiě)
- 變量以
$
開(kāi)頭 只能包含字母
开缎,數(shù)字
棕叫,下劃線
,只能以字母
奕删,下劃線開(kāi)頭
-
// <?php?> 是php的語(yǔ)法標(biāo)簽格式
<?php
$v1 = 1;
$v2 = 2;
$result = $v1 + $v2;
// echo 是返回值
echo $result ;
//刪除變量
// $v3 = 3;
unset($v3);
?>
- 可變變量
//可變變量
$v = "age";
$age = 20;
//此時(shí) $v 被解析成 age
echo $v,"<br/>";
//$v被解析成 age 編程 $age 被解析成20
echo $$v,"<br/>"
- 預(yù)定義變量
$_GET 用于表單提交 get方式提交
$_POST 用于表單提交 post方式提交的數(shù)據(jù)
$_REQUEST 用于接受get方式提交俺泣,post方式提交的數(shù)據(jù)
$_SERVER 記錄服務(wù)端和客戶端的相關(guān)信息
$_COOKIE 一種會(huì)話技術(shù)
$_SESSION 一種會(huì)話技術(shù)
$_FILES 用于記錄用戶上傳的文件
$GLOBALS 用于記錄全局變量
//內(nèi)存原理
1.棧區(qū): 保存的是變量名,引用急侥,讀取速度快
2.堆區(qū):復(fù)雜數(shù)據(jù)存儲(chǔ)存儲(chǔ)砌滞,比如:數(shù)組侮邀,對(duì)象
3.數(shù)據(jù)段:簡(jiǎn)單數(shù)據(jù):整形坏怪,浮點(diǎn)型,布爾
4.代碼段:存儲(chǔ)的是源代碼的對(duì)應(yīng)的機(jī)器指令
5.輸出緩存:只要遇到輸出命令: echo,print輸出的數(shù)據(jù) 先寸放 在 輸出緩存中
-
執(zhí)行過(guò)程
image.png
- 傳值
- 賦值傳值
<?php
//1.賦值傳值
$v1 = 10;
$v2 = $v1;
echo $v1;
>
- 引用傳值
<?php
//2.引用傳值
$v3 = 10;
//$v4引用的是$v3的地址
$v4 = &$v3;
$v4 = 20;
echo $v3;
?>
常量
- 定義之后不允許修改绊茧,也不允許刪除
//語(yǔ)法1
// define("常量名","常量值"); 可以在分支結(jié)構(gòu)語(yǔ)句中
define("gg","70");
echo gg;
//語(yǔ)法2 用 const聲明常量铝宵。不可以在分支結(jié)構(gòu)語(yǔ)句中
const ll = 99;
echo ll;
//獲取所有的常量
$result = get_defined_constants();
print_r($result);
- 魔術(shù)常量
<?php
__FILE__ 用于獲取當(dāng)前文件完整的路徑和文件名
__DIR__ 用于獲取當(dāng)前文件的路徑
__LINE__ 用于獲取當(dāng)前代碼的行數(shù)
__FUNCTION__ 用于獲取當(dāng)前函數(shù)的函數(shù)名
__METHOD__ 用于獲取當(dāng)前方法的方法名
__CLASS__ 用于獲取當(dāng)前類的類名
__NAMESPACE__ 用于獲取當(dāng)前空間的空間名
?>
數(shù)據(jù)類型
標(biāo)量數(shù)據(jù)類型
int整形
float浮點(diǎn)型
string 字符串行
boolen 布爾
-
字符函數(shù)
-
trim()
去空格 -
strlen()
獲取字符串的長(zhǎng)度,但是不能正確處理中文字符串 -
mb_strlen()
獲取字符串的長(zhǎng)度华畏,能正確處理中文字符串
-
其中在字符串中會(huì)遇到一些特殊的符號(hào)鹏秋,我們需要用到轉(zhuǎn)義符
\’ 單引號(hào)
\" 雙引號(hào)
\t tab符
\r 回車符
\n 換行符
\\ \
\$ $
復(fù)合數(shù)據(jù)類型
數(shù)組 類型
對(duì)象 類型
特殊的數(shù)據(jù)類型
null
resource 資源類型
-
var_dunp()
函數(shù)可以輸出數(shù)據(jù)類型和數(shù)據(jù)值
var_dump(false); 結(jié)果是:bool(false)
數(shù)據(jù)類型的轉(zhuǎn)換和判斷
- 當(dāng)參與運(yùn)算的2個(gè)數(shù)據(jù)類型不同失敗,php會(huì)自動(dòng)進(jìn)行轉(zhuǎn)換
$num = 100;
$num1 = "100yuan";
echo $num * $num1;
- 強(qiáng)制轉(zhuǎn)換
(float)變量 轉(zhuǎn)換為浮點(diǎn)型
(array)變量 轉(zhuǎn)換數(shù)組
(object)變量 轉(zhuǎn)換為對(duì)象
(string)變量 轉(zhuǎn)換為浮字符串
(boolean)變量 轉(zhuǎn)換為布爾
- 數(shù)據(jù)類型的判斷
<?php
//判斷是不是 int float strong bool類型
is_int()
is_float()
is_string()
is_bool()
// 判斷是不是標(biāo)量的數(shù)據(jù) 類型(就是上面的4中類型 int,float,string,bool)
is_scalar()
//判斷對(duì)象 數(shù)組類型
is_object()
is_array()
//判斷null 和 資源類型
is_null()
is_resource()
//用于判斷變量是否設(shè)置值
isset()
//判斷變量是為空
//此處的空等效于返回布爾false的值都被empty認(rèn)為是空
//如果是空 返回true
empty()
?>
流程控制
-
順序結(jié)構(gòu)
-
分支結(jié)構(gòu)
if分支
if (condition) {
# code...
}else {
# code...
}
- 多分支
switch ($variable) {
case 'value':
# code...
break;
default:
# code...
break;
}
-
循環(huán)
- for
- while
文件引入
require
require(文件名)
require_once(文件名)
include
include(文件名)
include_once(文件名)
區(qū)別:include在引入文件時(shí)亡笑,如果引入的文件不存在則會(huì)報(bào)錯(cuò)侣夷,但程序還會(huì)繼續(xù)向下執(zhí)行
require 在引入文件時(shí),如果引入的文件不存在則會(huì)報(bào)錯(cuò)仑乌,會(huì)終端程序的執(zhí)行
include_once,require_once每次引入文件時(shí)百拓,都會(huì)檢查索要引入的文件之前有沒(méi)有被引入過(guò)琴锭,如果有引入過(guò)就不會(huì)再引入