這周學習了php,在安裝完配置環境後,下面是所學知識點:php
1、php基礎
關於PHP標識:html
每個PHP是以 <?php 開頭 以 ?> 結尾jquery
注意:php文件裏是能夠寫HTML的。可是須要注意的是,不能寫在PHP的範圍內,也就是不能再<?php ?>內,只能在以外寫。好比 <?php echo 123; ?> <h1>123</h1>web
echo 是 PHP 輸出函數。 關於PHP輸出函數有如下幾種:json
一、echo 輸出基礎類型,如字符串 和 數字,bool等數組
二、print 同上,可是有返回值,1和0服務器
三、printf 也是輸出格式化字符串網絡
四、print_r 輸出集合類型,有必定規則。函數
五、var_dump 輸出集合類型,沒有規則學習
6 echo print 不會輸出bool類型
PHP變量是以$符號標識的。
注意:變量只能如下劃線_ 和大小寫字母開頭,在變量過程當中,只能有下劃線 大小寫字母 以及 數字。不要有空格!運算符等!正確:$a $ab $_ab錯誤: $1a $a b
在PHP中有通配符,%s 表明是匹配字符串類型,%u %d %i 都是匹配整型 %f 表明是匹配浮點類型 %.2f 表明是匹配浮點類型 保留2個小數。
printf() 和 sprintf()的區別:
printf() 返回的是 字符串 和 長度。
sprintf() 返回的是隻是格式化的字符串
如: sprintf("http://aiqiyi.com/%s", "尋龍訣");
變量賦值是指將一個變量的值給另外一個變量。如:
$a = 10;
$b = $a;
$b = 20;
echo $a;//10
echo $b;//20
引用賦值是指將一個變量的內存地址給另外一個變量,由於若是整個給內存地址的變量一旦發生改變,那麼另外一個變量立馬改變。
$a = 10;
$b = &$a;
$b = 20;
echo $a; //20
echo $b; //20
PHP中字符串鏈接 不用+ 用 .
函數做用域
在PHP中,全局變量改變,一般不會影響到局部變量,除非你必定要去使用全局變量。那麼請你一個關鍵字 叫作global。如:
$number = 1000;
funciton abc(){
global $number;
echo $number;
}
abc();
static 關鍵字通常用於靜態變量,而靜態變量的做用就是讓這個變量在不使用的時候 不會被釋放,而是長期保留。
PHP中 {}用於表示同時編譯括號內的變量,如:
$a = 10 ; echo {$$a};
PHP中的數據類型:
整型、浮點型、布爾型、字符串
數組、對象、資源類型、NULL
單引號和雙引號的區別:
雙引用會進一步解析內部的變量定義,而單引號則會直接輸出這個字符,由於理論上來講單引號快一些。
PHP中的數組、字典的關鍵字是array
如 $a = array(); //定義了一個空數組
$a = array( 1, 2, 3 ); //定義了一個數組有3個元素。
遍歷數組,第一種方法,count爲數組計數:
for( $i = 0 ; $i < count($a); $i++ ){
echo $a[$i];
}
遍歷數組,第二種方法,foreach:
foreach( $a as $key ){
echo $key;//$key名字爲變量名 隨便定義
}
字典:$a = array( "name" => "abc", "a" => "b");
在php的字典中 key => value 的形式存在的。
遍歷字典:
foreach( $a as $key => $value ){
echo $key."-".$value;
}
2、php函數
PHP函數很是強大
一、rand 隨機數。rand(最小值,最大值)
二、array_rand 隨機數組。提取數組中的任意一個元素。注意是提取下標。array_rand(數組,提取數);
三、array_search 能夠快速找到數組或者字典中的某個值,返回下標,若是沒有找到返回的0或者false。
注意:這個函數由於會返回0,可是0在數組裏是有下標的,所以判斷的時候請用 恆等 ===
array_search( "查找的值", 集合 );
四、array_unique 給集合去重,若是發現重複的元素直接刪除 注意:它會把重複的值所有刪除,也就是的標會有不存在,由於建議用foreach
五、unset(數組[下標]/字典[元素]) 移除集合裏的某個鍵值
$arr = array( 1, 2, 3 );
如: unset( $arr[0] );
isset(數組[下標]/字典[元素]) 判斷某個下標或鍵值是否存在
六、die() 設置程序斷點,用於程序調試
七、array_unshift 在集合頭部插入一個或者多個單元。如:array_unshift( $arr , "a", "b" );
array_push(數組,「」,「」) 在尾部插入一個或者多個元素。 也能夠用 數組[ ] = 元素。
八、array_pop(數組) 刪除集合最後一個元素。
九、array_shift (數組)刪除集合第一個元素。
十、implode 將數組以特殊符號,連接成字符串。
十一、explode 將字符串以特殊符號進行分割成數組。
十二、洗牌: shuffle( 數組 ) 數組打亂,注意它會將原數組打亂。
3、php語法增強
set_time_limit();用於php腳本的執行時間 同等於在php.ini中的max_execution_time 默認執行30秒。
若是要設置成執行無限秒 set_time_limit( 0 );
sleep();用於暫停的秒數
換行:\n 用於腳本 <br/> 用於網頁
is_array($arr) 檢測變量是否爲數組
array_keys 返回集合的鍵
array_values 返回集合的值
in_array 判斷集合中是否有某個值,如in_array( "a",$arr); 返回的是布爾值。
array_key_exists 判斷數組中是否包含了某個鍵值,返回的是布爾值。
array_count_values 返回的是數組中,全部值出現的次數
在php中的變量比較,優先轉化成有同一類型的變量,優先轉化成整型,如:0 == "name" 那麼優先轉化"name" 爲0 所以 它們是相等的。
字符串中,轉化後若是判斷是浮點則直接用浮點跟整型比較一次。
sort() 升序 rsort() 倒序
判斷某個變量的數據類型用 is_類型
如:
is_string 判斷字符串
is_int 判斷整型
is_array 判斷數組
is_float 判斷浮點
轉化類型函數:
intval
floatval
strval
// 一般這種狀況下:浮點*整型(字符串等) 會有二進制的問題,
//所以,若是須要解決有2個渠道:
//一、在輸出以前用strval函數。
//二、請用round函數,功能是四捨五入
注意:在PHP中「a」+/-/*/ 「b」 都是須要轉化成整型或者字符串類型運算的。
強制轉化成整型通常都是從左往右查看,若是爲數字則保留,其餘的則直接爲0
如:10a 強制轉化爲 10 , a10 強制轉化爲 0
empty() 通常用於判斷集合是否爲空。
如:if( empty($arr) ) echo "集合爲空";
var_export 輸出或返回一個變量的字符串表示
經過將函數的第二個參數設置爲 TRUE,從而返回變量的表示。
宏:define 至關於超級全局變量。
define( "參數名", 值);
如: define("A","Hello");
echo A; //注意這裏不要加$;
@ 忽略警告或者錯誤。繼續執行下面的
echo "Hello";
echo @(1/0); //加了@會自動忽略掉警告或者錯誤
echo "Hello";
整個程式輸出的是Hello Hello;
魔術方法
__FILE__ 當前文件的路徑
__LINE__ 定義的行數
__DIR__ 當前文件的路徑 不包括這個文件名
如:
define( "FPATH" , __FILE__ );
define( "Line" , __LINE__ );
define( "DIR1", __DIR__ );
$global 申請使用或者定義 全局變量。
$_SERVER 打印當前服務器的詳細信息。
$_REQUEST 同時接收POST/GET方式請求
$_POST 接收POST方式請求
$_GET 接收GET方式請求
global a://只是把當前的變量去引用了一塊兒全局變量
$GLOBALS //直接返回的是一個數組,打印的是全局申請變量的值,包括$_GET $_POST.
//var_export( $GLOBALS );
4、文件操做
一、函數參數默認值
在php中參數是有默認值的,若是某個參數不傳值,那就直接執行默認值 如:function a( $a = 10 ){}
文件通常分有幾種路徑:
一、利用http訪問的路徑。
通常用於webserver等網絡訪問某個文件。若是http://localhost/index.html 其實上就是訪問你在webserver配置文件下設置的根目錄下的index.html。若是你須要訪問根目錄下的某個文件夾裏的文件,請在訪問的時候,帶上文件夾的名字訪問。如:
http://localhost/文件夾名(不要中文)/index.html
二、利用file訪問的路徑。
通常用於本地訪問,file是指找到本地的某個文件夾裏的文件。如:file://C://PHP/PHPWeb/jquery.1.8.0.js
注意:該種方法,通常用於簡單的頁面製做,布恩那個用於PHP開發和網絡開發。
路徑其實也分有兩種表示方式:
一、絕對路徑
特指完整的路徑 在file中爲: file://c:/php/phpweb/index.html 。在http中引用某個文件爲: www.baidu.com/dev/jquery.js
二、相對路徑
特指相對於當前目錄下,所引用的那個文件的路徑。如http下 引用某個文件 dev/jquery.js
二、json_encode 集合轉化爲json編碼格式。
三、json_decode(集合,true) json轉化爲數組、字典格式,若是不加true 可能會轉化爲OBJECT 對象格式。
die( 輸出語句 ); 斷點
exit( 輸出語句 );退出
四、文件操做
一、is_writable 判斷是否可寫
(file_exists 判斷文件是否存在)
二、fopen 打開一個文件
三、fread 讀取一個文件
四、filesize 返回當前文件長度
五、fwrite 寫入一個文件
六、fclose 關閉一個文件
一、判斷文件是否可寫
二、打開一個文件。
三、讀或者寫一個文件
四、關閉一個文件
fopen 參數詳解
r read 只讀
w 寫
a 追加
注意:寫會覆蓋!
總結:
在學習php以前,安裝配置環境就用了好久,在老黃的指導下一步一步的安裝完,而後卸載本身從新安裝一遍,瞭解了php的工做原理。php的語法很精簡,看起來也是容易懂。練習仍是一如既往的沒有頭緒,只能靠老黃的優秀代碼增加本身。勤加練習,相信有一天會突破瓶頸的。