摘要:引用傳遞除了對象和資源,其他類型的引用傳遞都是指向同樣的數(shù)據(jù),各自互相影響。與基本用法一致,但區(qū)別如下沒有返回值,有返回值可以輸出多個參數(shù),只可以輸出一個參數(shù)是函數(shù),可以打印復(fù)合類型,例如等,主要用于數(shù)組打印是函數(shù),把文字格式化以后輸出。
命令行執(zhí)行PHP代碼三種方式
1、/usr/local/php/bin/php 后面跟上某個PHP文件
2、/usr/local/php/bin/php -r “這里直接寫上PHP代碼”
3、創(chuàng)建一個文件,在第一行寫上下面代碼
#! /usr/local/php/bin/php 命令行傳參兩個全局變量
$argc和$argvphp -v 通過$argv[1]可以獲取到-v
PHP換行在控制臺輸入換行
windows系統(tǒng)是 ,linux系統(tǒng)是 ,一般直接使用PHP_EOL在HTML里面換行
對象(資源)傳遞
輸入值傳遞
除了對象和資源,其他類型的值傳遞都是數(shù)據(jù)拷貝,各自獨立。
而對象和資源的值傳遞很特別,看起來很像引用傳遞,但其實只是中間多了一個對象標(biāo)識。
引用傳遞
對象數(shù)組的json化
除了對象和資源,其他類型的引用傳遞都是指向同樣的數(shù)據(jù),各自互相影響。
而對象和資源的引用傳遞都是指向中間的對象標(biāo)識。
對象與關(guān)聯(lián)數(shù)組的json_encode()都會轉(zhuǎn)化成{"name":value}字符串形式,只有純索引數(shù)組才會轉(zhuǎn)化成[value1,value2]字符串形式
對象數(shù)組的字符串使用json_decode()會轉(zhuǎn)成對象數(shù)組,如果使用json_decode($strArr,true)會轉(zhuǎn)成二維數(shù)組
Linux與Win文件路徑分隔符windows使用的是
linux使用的是 /
在PHP提供了一個內(nèi)置常量解決不同系統(tǒng)中路徑的問題:DIRECTORY_SEPARATOR
linux只可以使用 /,而windows 兩種都可以使用,所以一般都轉(zhuǎn)換成linux的分隔符
str_replace("", "/", __FILE__)Linux、Mac與Win 文本換行符在unix系列用
在windows系列用
在mac用
PHP提供PHP_EOL來替代,以提高代碼的源代碼級可移植性
echo PHP_EOL; //windows平臺相當(dāng)于 echo " "; //unixlinux平臺相當(dāng)于 echo " "; //mac平臺相當(dāng)于 echo " ";父類中也可以調(diào)用子類的方法(使用反射)在父類中定義(_initialize()父類中沒有)
public function __construct() { //控制器初始化 if(method_exists($this,"_initialize")) $this->_initialize(); }在子類中定義_initialize()方法
最后再實例化子類時,就會在父類的構(gòu)造函數(shù)中調(diào)用子類定義的方法
防止頁面超時set_time_limit ( int $seconds ) //設(shè)置腳本最大執(zhí)行時間
設(shè)置允許腳本運行的時間,單位為秒。如果超過了此設(shè)置,腳本返回一個致命的錯誤。默認(rèn)值為30秒
PHP中超全局變量$GLOBALS和global的區(qū)別$GLOBALS是外部的全局變量本身
global是外部全局變量的同名引用或者指針
PHP中的錯誤抑制符@的使用@的作用:只是不讓系統(tǒng)報錯,屏蔽了錯誤
@的適用:變量,函數(shù)和 include 調(diào)用,常量
@的應(yīng)用:
出錯了對你影響不大, 你也不關(guān)心這個錯誤是什么, 你也不會安排額外的邏輯來處理這種錯誤, 那么你可以使用錯誤抑制. 否則, 請你使用額外的邏輯來判斷錯誤。
PHP一般異常處理:最重要是要捕獲到異常,然后做一些特殊處理@的例子:
@include("file"); //等同 $foo = error_reporting(0); include("file"); error_reporting($foo); //所以很多步驟都重復(fù)了,所以盡量少用,避免開銷PHP類內(nèi)部調(diào)用類外部定義的變量(3種方式),實現(xiàn)在類中引用外部定義的全局變量通過傳遞外部參數(shù)到類內(nèi)部
url = $url; } function showUrl(){ echo $this->url; } } $test = new test($url); $test->showUrl(); ?>在PHP類方法中使用global關(guān)鍵字直接引用類外部變量
url = $url; echo $this->url; } } $test = new test($url); $test->showUrl(); ?>在PHP類方法中直接使用$GLOBALS全局?jǐn)?shù)組引用類外部變量
url = isset($GLOBALS["url"])?$GLOBALS["url"]:""; echo $this->url; } } $test = new test($url); $test->showUrl(); ?>PHP性能優(yōu)化少寫PHP代碼,多用PHP自身能力(內(nèi)置變量、常量、函數(shù))
PHP內(nèi)置函數(shù)的性能優(yōu)劣選擇
建議不要使用錯誤抑制符@
減少計算密集型業(yè)務(wù)
避免在循環(huán)內(nèi)循環(huán)條件做運算
htmlentities()和htmlspecialchars()區(qū)別htmlspecialchars() 只轉(zhuǎn)化html的5種字符
& & " " " ' (for ENT_HTML401) or ' (for ENT_XML1, ENT_XHTML or ENT_HTML5), but only when ENT_QUOTES is set < < > >htmlentities() 轉(zhuǎn)化所有的html代碼,除上面5種字符以外,中文也會轉(zhuǎn)化成html實體
$str="測試頁面"; echo htmlentities($str); // 2aê?ò3?? $str="測試頁面"; echo htmlspecialchars($str); // 測試頁面有中文的時候,最好用 htmlspecialchars ,否則可能亂碼
htmlspecialchars() 對應(yīng) htmlspecialchars_decode()
htmlentities() 對應(yīng) html_entity_decode()
$_POST、$HTTP_RAW_POST_DATA與php://input的區(qū)別由于$HTTP_RAW_POST_DATA與php://input作用一樣,但區(qū)別如下:
1、$HTTP_RAW_POST_DATA 需要配置 php.ini 中的 always_populate_raw_post_data 值為 On 才會生效,而 php://input 無需配置就生效
2、當(dāng) $_POST 與 php://input 可以取到值時 $HTTP_RAW_POST_DATA 為空
3、$HTTP_RAW_POST_DATA 從php5.6起就開始過時了,并在php7.0中正式刪除,而用 php://input 替代相同點:
1、不能用于 enctype="multipart/form-data"(也叫Content-Type)$_POST 與 php://input 的區(qū)別如下:
1、Content-type 為application/x-www.form-urlencoded或multipart/form-data時,$_POST才有值,得到的數(shù)據(jù)是經(jīng)過urldecode解碼處理
instanceof使用注意
2、除了Content-type 為multipart/form-data時,php://input沒值以外,其他情況都有值,例如:application/json、text/xml、text/plain
3、文件上傳只能通過$_POST獲取值
4、其他方式如:put/delete,也只能通過php://input獲取判斷對象是否屬于某類,此類可以是父類、爺類就會返回true,否則返回false
echo、print、print_r()、printf()、sprintf()、var_dump()區(qū)別echo :是語句不是函數(shù),沒有返回值,可輸出多個變量值,不能輸出數(shù)組和對象,只能打印簡單類型(如int,string,bool,float,null)。
print :是語句不是函數(shù),有返回值 1 ,只能輸出一個變量,不能輸出數(shù)組和對象,只能打印簡單類型(如int,string,bool,float,null)。
echo與print基本用法一致,但區(qū)別如下:
1、echo沒有返回值,print有返回值
2、echo可以輸出多個參數(shù),print只可以輸出一個參數(shù)
print_r :是函數(shù),可以打印復(fù)合類型,例如:array、object等,主要用于數(shù)組打印
printf :是函數(shù),把文字格式化以后輸出。
sprintf :是函數(shù),不打印,而是返回格式化后的文字,其他的與printf一樣。
var_dump :是函數(shù),輸出變量的內(nèi)容、類型或字符串的內(nèi)容、類型、長度。常用來調(diào)試。
運算符 &、|、&&、|| 之間的區(qū)別& :位與運算符,返回是int數(shù)據(jù)類型
| :位或運算符,返回是int數(shù)據(jù)類型
//位與或位或時 數(shù)據(jù)類型轉(zhuǎn)換 TRUE => 1 FALSE => 0 ""與"0" => 0 //按字符串轉(zhuǎn)數(shù)值類型的規(guī)矩 [] => 0 非空數(shù)組 => 1 12 | [] //12 TRUE & "8" //0 TRUE | "8" //9&& :與運算符,返回是bool數(shù)據(jù)類型
|| :或運算符,返回是bool數(shù)據(jù)類型
子類重寫父類方法的限制父類中final方法是不可以重寫的
子類重寫父類方法只可寬松,不可嚴(yán)謹(jǐn)
重寫方法名稱必須相同
大括號的作用作用域-------例如:function fn(){}
$str{4}在字符串的變量的后面跟上{},大括號和中括號一樣都是把某個字符串變量當(dāng)成數(shù)組處理
{$val},這時候大括號起的作用就是,告訴PHP,括起來的要當(dāng)成變量處理。
var_export()用法以php數(shù)據(jù)原型輸出
$msg = "xxx"; var_export($msg); //輸出"xxx" var_export($msg,true); //不輸出,只返回 "xxx"動態(tài)生成.php文件
$msg = "nihao"; $content = ""; file_put_contents("./test.php",$content);include與request 內(nèi)外調(diào)用用法包含進(jìn)來的文件,其實與原文件相當(dāng)合并1、外面文件可以訪問里面文件定義的變量(在include之后定義的變量) 2、里面文件可以訪問外面文件在include之前定義的變量
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/22218.html
摘要:目前在前端開發(fā)所占的比重越來越高,在我們學(xué)習(xí)和開發(fā)的過程中都會去使用。下面把程序員雷雪松對的知識點總結(jié)和歸納分享給大家。過濾對同胞元素的搜索。將匹配元素集合縮減為集合中的最后一個元素。返回指定元素相對于其他指定元素的位置。 jQuery目前在Web前端開發(fā)所占的比重越來越高,在我們jQuery學(xué)習(xí)和開發(fā)的過程中都會去使用。jQuery幫我們解決了瀏覽器之間JS一些不兼容的地方和簡化了原...
摘要:中在基礎(chǔ)集合類路由類中和分頁類中等,都用到了對象遍歷這個小知識點,這些類都是實現(xiàn)了這個接口,這個接口定義,返回的是迭代器對象。標(biāo)準(zhǔn)擴展庫中提供了很多默認(rèn)迭代器實現(xiàn)類,比較常用的是數(shù)組迭代器對象,參考官網(wǎng)迭代器。 說明:本文章主要講述PHP的對象遍歷(Iterator)知識點。由于Laravel框架中就在集合(Collection)中用到了對象遍歷知識點,故記錄并學(xué)習(xí)之。同時,作者會將開...
摘要:本文的分享主要圍繞以下幾個方面能做什么常見應(yīng)用場景介紹如何學(xué)習(xí)語法基礎(chǔ)實戰(zhàn)面向?qū)ο缶幊虒崙?zhàn)練熟基礎(chǔ)小游戲項目的實現(xiàn)與實戰(zhàn)一能做什么一種編程語言往往可以應(yīng)用于多方面,有些方面比較常用,有些方面極為常用。比如表示是一個空列表。 摘要:Python語言的教程雖然隨處可見,但是忙于日常業(yè)務(wù)/學(xué)習(xí)的你或許:一直想要找個時間學(xué)一點,但是又不知道該從何下手?本文將從Python能做什么,如何學(xué)習(xí)Py...
閱讀 1180·2021-11-22 13:54
閱讀 2428·2021-09-22 15:36
閱讀 2735·2019-08-30 15:54
閱讀 802·2019-08-30 15:53
閱讀 3168·2019-08-30 15:53
閱讀 515·2019-08-29 15:21
閱讀 2862·2019-08-28 18:28
閱讀 3004·2019-08-26 13:37