php中数据类型、数组排序、循环语句、混编、操作本地文件流程、常用API、函数、魔术常量
php中數(shù)據(jù)類型:
php中有7種數(shù)據(jù)類型,分別是:
//1.String字符串,用引號包裹的字符,如:$str = 'hello word';//2.Integer整型,可以是正數(shù)或負數(shù),有十進制、十六進制、八進制,不能有小數(shù)點、空格、逗號等符號,如:$num = 123;//3.Float浮點型,指帶小數(shù)部分或指數(shù)形式的數(shù)字,如:$num = 5.2;$num2 = 2e;//4.Boolean布爾型,值為true或false,如:$bool = false;//5.Array數(shù)組,php中有三種類型數(shù)組:數(shù)值數(shù)組、關(guān)聯(lián)數(shù)組、多維數(shù)組,如:$arr = array(1,'2','false');//數(shù)值數(shù)組,即常見數(shù)組$arr = array("name"="jack","age"=18);//關(guān)聯(lián)數(shù)組,帶有指定鍵的數(shù)組$arr = array(1,2,array(3,4));//多維數(shù)組,包含一個或多個數(shù)組的數(shù)組//6.Object對象,php中的對象使用class關(guān)鍵字聲明類對象,類是可以包含屬性和方法的,如:class Person{// 屬性:$name = 'jack';$age;// 構(gòu)造方法:function __construct($ages){$this->age=$ages;}// 方法:function say(){echo "{$this->name}---- {$this->age}";}}$per=new Person(20);$per->say();//7.NULL,表示沒有值,如:$nulls = null;數(shù)組排序:
php中提供了多個根據(jù)數(shù)字或字母對數(shù)組進行排序的方法,具體如:
//sort(arr);升序排序//rsort(arr);降序排序//asort(arr);根據(jù)關(guān)聯(lián)數(shù)組的值,升序排序//ksort(arr);根據(jù)關(guān)聯(lián)數(shù)組的鍵,升序排序//arsort(arr);根據(jù)關(guān)聯(lián)數(shù)組的值,降序排序//krsort(arr);根據(jù)關(guān)聯(lián)數(shù)組的鍵,降序排序php中循環(huán)語句:
php中提供了while、do-while、for、foreach循環(huán),具體如下:
//while(條件){代碼塊}:當條件成立時執(zhí)行代碼塊,如:while($num == 1){echo true;}//do{代碼塊}while(條件):先執(zhí)行至少一次代碼塊,在通過條件判斷是否繼續(xù)執(zhí)行代碼塊,如do{echo 'hello';}while($str == 'hello');//for(初始值,條件,增量){代碼塊}:根據(jù)初始值是否滿足條件,滿足則執(zhí)行代碼塊;不滿足則執(zhí)行增量再判斷條件,是否要執(zhí)行代碼塊,依次不斷執(zhí)行,如:for($i = 0;$i < 5;$i++){echo i;};//foreache($arr as $value){代碼塊;},foreach用于遍歷數(shù)組,當為普通數(shù)組時$value即為數(shù)組元素;當為關(guān)聯(lián)數(shù)組時,$value是數(shù)組中的一項,要拿到具體的值需要加下標;或者可以用兩個參數(shù)接收數(shù)據(jù),此時一個是鍵。另一個是值,如foreach($arr as $value){echo $value;}foreach($arr as $data){echo $data[id];}foreach($arr as $key => $value){echo $key . '---' . $value;}php中混編:
php中注釋://
//普通嵌入php代碼:<p><?php echo 'hello'; ?></p>//語句混編:<?php if ($age>18){ ?><p>成年人</p><?php }else{ ?><p>未成年</p><?php } ?> <?php if($age > 18): ?><p>成年人</p><?php else: ?><p>未成年</p><?php endif ?>//指令式語句:<?php if(true):echo 'hello';endif;if(true):each 'hello'else:each 'word'endif;?>php操作本地文件流程:
//1.php中提供了讀取文件的方法,它會把文件內(nèi)容以字符串的方式返回$str = file_get_contents('文件URL');//2.php提供了解析字符串的方法explode("割開符",字符串),它將解析好的字符串以數(shù)組形式返回,需要注意的是:轉(zhuǎn)移符要用雙引號,否則解析失敗$arrData = explode("\n",str);//3.通過循環(huán)將數(shù)組中的數(shù)據(jù)打印出來:foreach($arrData as $data){var_dump($data);};php中常用API:
API:Application Programming Interface(應(yīng)運程序編程接口),接口都是提供某種特定能力的實物,特點是有輸入和輸出,在開發(fā)時用到的接口稱之為API。任何編程語言本身沒有太多能力,大多數(shù)能力來源于API。php它有1000+的內(nèi)置函數(shù),不是每一個函數(shù)都可以直接調(diào)用,有的是需要安裝或者調(diào)用額外的插件擴展。
| strtolower(str) | 將字符串str轉(zhuǎn)換為小寫 |
| trim(str) | 去掉字符串兩頭的空格; 去除字符串左邊的空格:ltrim(’ str’);去除字符串右邊的空白格:rtrim('hello ') |
| substr(str,index) | 從字符串str的index位開始截取并返回截取的字符串; 截取寬字符集:mb_substr(‘原字符串’,截取的長度) |
| print_r() | 輸出數(shù)組的每一項的值和 var_dump()相似 |
| strtoupper(str) | 將str裝換為大寫字母 |
| strpos(str,s) | 查找字符串str中首次出現(xiàn)的字符s,返回s的位置;寬字符查找 mb_strpos(‘原字符串’,‘要查找的部分’) |
| str_replace(targstr,repstr,str) | 替換字符串,將str中的targstr替換成repstr |
| str_repeat(str,n) | 重復(fù)字符串,將字符str重復(fù)n次 |
| explode(’\n’,‘str’) | 以\n分割字符串str |
| array_keys(arr)或array_value(arr) | 獲取關(guān)聯(lián)數(shù)組arr中的鍵或值 |
| array_key_exists(‘key’,arr) | 判斷arr數(shù)組中是否存在key鍵,返回的是一個布爾值 |
| array_unique(arr) | 去除數(shù)組arr中重復(fù)的元素 |
| array_push(arr,ele1,ele2,…) | 將一個或者多個元素追加到arr數(shù)組中 |
| array_pop(arr) | 刪除數(shù)組arr中最后一個元素 |
| count(arr) | 返回數(shù)組arr的長度 |
| in_array(ele,arr,boolean) | 檢測數(shù)組arr中是否存在ele元素,存在返回1,否則什么也不反回;參數(shù)三是一個布爾值,當為true時表示查找ele數(shù)據(jù)類型和檢測數(shù)組arr數(shù)據(jù)類型一致 |
| array_search(ele,arr) | 返回元素ele在數(shù)組arr中的鍵(下標) |
| time() | 返回的是從1970/1/1號起到現(xiàn)在的秒數(shù)值,跟js中毫秒值一個意思,但是這里是秒數(shù),之間的進制是1000 |
| date(時間格式,時間戳) | 格式化一個時間戳, 這里返回格林威治時間,比起東八區(qū)的時間少8小時。為了這個時間是中華人民共和國時間,可以寫入代碼: date_default_timezone_set(‘PRC’)或者配置php.ini文件中 date.timezone = PRC |
| strtotime(時間字符串) | 對已有時間字符串做格式化 |
| basename(url,php) | 返回url路徑中文件名部分,第二個參數(shù)可選,表示文件擴展名 |
| dirname() | 返回路徑中除文件名部分 |
| copy() | 復(fù)制文件 |
| strlen(str)和 mb_strlen(‘寬字符集’) | 獲取str字符串的長度, 中文屬于寬字符集,每個字占三個字符,strlen()只能獲取拉丁文字符的長度, php中專門給寬字符集添加了一套API----所有的API都是mb_xxx |
| phpinfo() | 用于打印php信息的API |
| uniqid() | 隨機返回一個不重復(fù)的數(shù)字 |
| json_decode(json,true) | 將json格式字符串解析為關(guān)聯(lián)數(shù)組 |
| json_encode(arr) | 將關(guān)聯(lián)數(shù)組arr裝換為json格式字符串 |
| file_put_contents(‘test.json’,jsonstr) | 將json格式的字符串替換到test.json文件中 |
| header() | 設(shè)置文件響應(yīng)頭,可以處理網(wǎng)頁重定向、響應(yīng)文件格式等,常用于網(wǎng)頁重定向和文件下載 |
| array_splice(arr,index,length) | 刪除數(shù)組arr中索引index開始length長度的元素 |
| pathinfo(path,options) | 以數(shù)組的形式返回路徑path,options有四個關(guān)鍵字參數(shù)用于返回具體的路徑中某部分,其詳情閱讀官方文檔 |
| list(el1,el2…)=[arr1,arr2…] | 接收數(shù)組中對應(yīng)位置的每一個元素,常用于已知生日計算年齡 |
| unset(data) | 刪除data數(shù)據(jù) |
創(chuàng)建函數(shù):
php中函數(shù)和其他語言中函數(shù)基本一致,函數(shù)名應(yīng)該以字母或者下劃線開頭,函數(shù)名中可以有數(shù)字,如:
//簡單的函數(shù):function hello(){echo 'hello';};//傳入?yún)?shù)的函數(shù),參數(shù)可以是多個,中間用逗號隔開即可,如:function sum($a,$b){echo $a + $b;}//有返回值的函數(shù):function getHello(){return 'hello';}魔術(shù)常量:
php中所謂的魔術(shù)常量指:在不同的位置,常量的結(jié)果不同,它們的寫法不區(qū)分大小寫,php中有八個,分別如下:
//1.__LINE__ 返回當前代碼所在行數(shù),此常量放到不同的代碼行,返回不同的代碼行,如:echo __LINE__;//2//2.__FILE__ 返回當前文件的絕對路徑和文件名,如:echo __FILE__;//如:F:\test\index.php//3.__DIR__ 返回當前文件的絕對路徑,如:echo __DIR__;//如:F:\test//4.__FUNCTION__ 返回當前函數(shù)的函數(shù)名,函數(shù)名區(qū)分大小寫,如:function myFn(){echo __FUNCTION__;};myFn();//myFn//5.__CLASS__ 返回當前class類的名稱,如:class person {function ech(){echo __CLASS__;}};$per = new person();$per->ech();//person//6.__TRAIT__ 實現(xiàn)代碼復(fù)用,php是單繼承的語言(一個子類只能有一個父類),但是通過trait可以實現(xiàn)多繼承,寫法和類相似。如:trait cat {//trait聲明,trait中一般只添加方法,不能實例化一個對象,trait可以嵌套trait,function eat(){echo '吃';};};trait monkey{function run{echo '跑';}};trait dog {use monkey;//嵌套使用traitfunction wo(){echo '旺';};function eat(){echo '吃肉';};};calss Animal{use cat,dog;//使用trait,使用trait用use關(guān)鍵字,若要使用多個trait,則在后面用逗號隔開//use cat,dog{當使用多個trait且里面方法有命名相同的時,可以在后面加{},括號里面使用insteadof進行替換://cat::eat insteadof dog; cat中eat方法替換為dog中//dog::eat as dogeat; 或者給dog中的eat方法起別名//}};$animals = new Animal();$animals->eat();//吃$animals->run();//跑//7.___METHOD__ 返回函數(shù)名,方法定義的名字,如:function fntest(){echo __METHOD__;};fntest();//fntest//8.__NAMESPACE__ 返回當前命名空間的名稱,如:namespace mydemo;echo __NAMESPACE__;//mydemo提示:本文圖片等素材來源于網(wǎng)絡(luò),若有侵權(quán),請發(fā)郵件至郵箱:810665436@qq.com聯(lián)系筆者刪除。
筆者:苦海
總結(jié)
以上是生活随笔為你收集整理的php中数据类型、数组排序、循环语句、混编、操作本地文件流程、常用API、函数、魔术常量的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 学python最重要的是_Python学
- 下一篇: php 网站上传大小限制吗,配置PHP程