PHP学习2——基本语法
主要內(nèi)容:
?
網(wǎng)站的核心功能是展現(xiàn)信息,文字,圖片,視頻,音頻,對于計算機來說都是數(shù)據(jù),這些數(shù)據(jù)按照二進制進行存儲。
二進制
就是1100,0100,1010這樣的數(shù)據(jù)就是二進制數(shù),二進制數(shù)分為有符號數(shù)、無符號數(shù)。原碼,反碼,補碼是有符號數(shù)才有的表示方法。
對于正數(shù):原碼=反碼=補碼
原碼:0100,0100,1010 反碼:0100,0100,1010 補碼:0100,0100,1010對于負數(shù):原碼!=反碼,反碼+1=補碼
原碼:1100,0100,1010 反碼:1011,1011,0101 補碼:1011,1011,0110數(shù)據(jù)類型
整數(shù)(10112),浮點數(shù)(12.34),字符串("cat"/‘cat’)
變量
使用$符號申明變量,以英文字母或者_(下劃線)開頭,后面可是是英文字母,數(shù)字,下劃線,比如$score,$mark,$name,$Password
php預(yù)定義變量:
- $GLOBALS(當前程序中全局變量)
- $SERVER(全局變量,包含頭信息,腳本位置的數(shù)組)
- $_COOKIE(通過http的cookie方法提交到腳本的變量)
$_SERVER常見的$_SERVER的元素包括:
- PHP_SELF(當前正在執(zhí)行的腳本的文件名)
- SERVER_ADD(當前執(zhí)行腳本所在服務(wù)器ip)
- DOCUMENT_ROOT(當前腳本所在文檔根目錄)
- SCRIPT_FILENAME(當前執(zhí)行腳本絕對路徑)
demo2.php
<?php$a="this is test!";echo "通過\$GLOBALS來獲取變量值:";echo $GLOBALS['a']."<br/>";echo "當前執(zhí)行腳本的文件名:";echo $_SERVER['PHP_SELF']."<br/>";echo "當前執(zhí)行腳本的跟目錄:";echo $_SERVER['DOCUMENT_ROOT']."<br/>";echo "當前執(zhí)行腳本的絕對路徑:";echo $_SERVER['SCRIPT_FILENAME']."<br/>";?>啟動xampp的控制面板,運行Apache,綠色說明是正常運行
將文件拷貝的xampp的htdocs下
打開瀏覽器輸入:http://localhost/demo2.php
常量
const name=value;
比如:const MONEY_RATE=0.5;
常用預(yù)定義常量
- __FILE__(放回當前文件名稱,注意下劃線是兩個)
- __LINE__(返回當前代碼所在行號,注意下劃線是兩個)
- __FUNCTION__(返回所在函數(shù)的名稱,注意下劃線是兩個)
- __CLASS__(返回所在的類名,注意下劃線是兩個)
- PHP_OS(返回操作系統(tǒng)名稱)
- TRUE(布爾值,真)
- FALSE(布爾值,假)
- NULL(空值)
demo3.php
<?php echo "當前文件所在位置:".__FILE__."<br/>";echo "當前操作系統(tǒng)是:".PHP_OS;?>賦值
賦值最基本的運算
demo4.php
<?php$a="this is test!";//申明變量,并賦值$b;$b='this is test!';//先申明變量,后賦值$c=$a;//使用一個變量給另一個變量賦值ECHO $a."<br/>";echo $b."<br/>";echo $c."<br/>";?>輸出:
字符串單引號和雙引號
單引號的變量做字符串處理,雙引號變量會解析出來
demo5.php
<?php$a="this is test!"; $b=10;echo '$a'.'<br/>'.'$b'."<br/>";echo "$a".'<br/>'."$b"."<br/>";?>輸出
?語句結(jié)構(gòu)
PHP語句通常是表達式組成,語句;(英文分號)結(jié)尾,不加會報錯。
條件構(gòu)成
關(guān)系運算:>(大于),<(小于),==(等于),===(全等于,包括類型),<>或!=(不等于),!==(非全等于,左右操作數(shù)數(shù)值或者類型不相等,返回真)
邏輯運算
- and/&&/&(邏輯與true&true==>true)
- or/||/|(邏輯或false||false==>false)
- not/!(邏輯非!true==>false)
- xor/^(邏輯異或,true^false==>true ,false^true==>true,false^false==>false)
邏輯與(&&)的短路原則:
- exp1&&exp2,如果exp1為false,則exp2不執(zhí)行,直接返回false
分支結(jié)構(gòu)
- if語句
- if-else語句
- if-elseif-else語句
- switch語句
demo6.php
<?php$a=5; $b=10;if($a>$b){echo '$a大于$b';}else{echo '$a小于$b';}?>輸出$a小于$b
循環(huán)結(jié)構(gòu)
while語句
do-while語句
for語句
demo7.php
<?php//for循環(huán)for($i=0;$i<10;$i++){echo 'good! ';}?>輸出good! good! good! good! good! good! good! good! good! good!
函數(shù)
PHP的函數(shù)很好用,不用申明返回數(shù)據(jù)的類型(當然這是優(yōu)點也是缺點,不過我認為還是優(yōu)點,減少了代碼量啊,有沒有!而且還不用想破頭到底應(yīng)該返回什么類型數(shù)據(jù),而且PHP的輸出支持鏈式調(diào)用,太方便了啊!)
函數(shù)把一個完整的功能多條語句封裝成一個模塊,函數(shù)使用function來申明
demo8.php
<?php//輸出n次變量afunction printString($a,$n){//for循環(huán)for($i=0;$i<$n;$i++){echo "$a";}}//調(diào)用函數(shù)printString("good! ",5);printString("<br/>",2);printString("apple and pear! ",1);?>輸出
?這個時候的函數(shù)參數(shù)為值傳遞,就是一個copy,在函數(shù)內(nèi)部改變這個值不會影響到外部的變量的值,但是如果我們想要在函數(shù)內(nèi)部改變外部的值,需要引用傳遞,將參數(shù)的引用路徑地址&a傳入
demo.9.php
<?php//交換$a,$b位置function swap(&$a,&$b){echo "交換前:".'$a='.$a.'$b='.$b;echo '<br/>';$temp=$a;$a=$b;$b=$temp; echo "交換后:".'$a='.$a.'$b='.$b; }$a=5;$b=9;//調(diào)用swap($a,$b)?>輸出
交換前:$a=5$b=9 交換后:$a=9$b=5全局變量
函數(shù)中不能直接使用全局變量,如果需要在函數(shù)中使用申明的全局變量,需要加前綴global
<?php$a=100;//輸出全局變量afunction gbl(){global $a;echo $a; }//調(diào)用gbl(); ?>輸出
100靜態(tài)變量
函數(shù)外不能直接使用函數(shù)內(nèi)部的變量,如果需要在函數(shù)外使用申明的函數(shù)中的變量,函數(shù)中變量需要加前綴static
<?php//輸出靜態(tài)變量afunction stc(){static $a=0;$a++;echo $a.','; }//調(diào)用stc();stc();stc();stc();stc(); ?>輸出
1,2,3,4,5,返回值
PHP的函數(shù)不用聲明返回值類型,真方便!
<?php//返回字符型function reutrnString(){return "today is sunday.";}//返回數(shù)字function returnNum(){return 1024;}//調(diào)用$a=reutrnString();echo "\$a=$a"."<br/>";$a=returnNum();echo "\$a=$a";?>輸出
$a=today is sunday. $a=1024函數(shù)引用返回
需要在申明函數(shù)的時候,在函數(shù)前面在&(取地址符號)
(這個有點變態(tài),直接操作引用地址,用起來出錯了怎么搞)
<?php//返回數(shù)字function &returnNum(){static $b=0;$b=$b+1;echo $b.'<br/>';return $b;}//調(diào)用$a=returnNum();//使用&$a=&returnNum();$a=1000;$a=returnNum();?>輸出
1 2 1001可變函數(shù)
需要在調(diào)用函數(shù)的時候在前面加$(申明變量符號),調(diào)用同一個函數(shù),但是卻執(zhí)行的是不一樣的代碼,
這個技術(shù)太牛逼!要是可以在配置文件中對變量進行修改,那么就可以動態(tài)的決定要執(zhí)行那個函數(shù),根據(jù)需求動態(tài)的修改程序,牛!!!
(這個更加變態(tài),不說了,看代碼)
<?php//返回字符型function reutrnString(){echo "today is sunday.<br/>";}//返回數(shù)字function returnNum(){echo 1024;}function hello(){echo '你好';}//調(diào)用$func='reutrnString';$func();$func='returnNum';$func();$func='hello';$func();?>輸出
today is sunday. 1024你好?遞歸函數(shù)
就是函數(shù)自己調(diào)用自己,沒有什么好說的,在一些算法中為了簡化可能會用到,但是遞歸調(diào)用的代碼執(zhí)行效率極低,不建議使用
<?php//遞歸function add(){static $a=0;$a++;echo '$a='.$a.",";if($a>10){return;}//調(diào)用自己,直到滿足條件add();}add();?>輸出
$a=1,$a=2,$a=3,$a=4,$a=5,$a=6,$a=7,$a=8,$a=9,$a=10,$a=11,系統(tǒng)函數(shù)
就是PHP將一些常用的函數(shù)封裝好了,不用自己寫了,看看API直接使用就行了。
<?php//返回最大值$a=max(1,22,34,777,3,55);echo "1,22,34,777,3,55中最大的數(shù)是:".$a; ?>輸出
1,22,34,777,3,55中最大的數(shù)是:777
總結(jié)
以上是生活随笔為你收集整理的PHP学习2——基本语法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 第五天 普通方法
- 下一篇: Nginx防盗链、访问控制、Nginx解