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