第一節 hello world
文档命名
文档後綴名爲 php
文档名中不可包含中文、空格、特殊符號
建議使用有意義的英文單詞命名
語言標記
標準風格
<?php.......?>
注意:
純php腳本文档要求:
開始標簽要在第一行頂頭寫;
刪除結束標簽。
php標簽之外是html語言環境,在純php代碼環境下,這些html字符(包括看不見的空格或者回車,制表符號)也會一同輸出,引發意外錯誤。因此,在編碼槼範中槼定:庫文档、class類文档等只要是純php代碼的文档,要刪除結尾的 ?> 結束標簽。
<!DOCTYPE html> <html> <body> <button>ajax異步請求</button> </body> </html> <script src="jquery-1.11.3.min.js"></script> <script> $("button").click(function(){ $.get("doAction.php",function(data){ alert(data? "ok":"no"); }) }) </script> <?php echo false; //輸出:"" ?>
結束標簽後有空格,輸出:" "
所以要刪除php的結束標簽
注釋符與結束符
// 單行注釋 /* 多行注釋 */
結束符使用英文分號 “;”
$hello="hello world";
常用命令和系統函數
echo
echo輸出 : 只能輸出字符串、數字、布爾(true:1 false:空)類型的數據
<?php $hello="hello world"; echo "<h1>{$hello}</h1>"; ?>
還有一種短標簽的寫法,有著比較悠久的歷史,但出於某些神秘的安全原因,不推薦使用。以下寫法在php.ini配置文档裡如果打開了short_tag,是可以簡寫的。
<h1> <?= $hello ?> </h1>
相當於
<?php echo $hello ?>
var_dump()
此函數顯示一個或多個表達式的結構信息,包括表達式的類型與值。數組將遞歸展開值,通過縮進顯示其結構
注意: var_dump中的變量必須是存在的,如果變量存在但值是空,則返回false 沒有變量時,則返回NULL 該函數有輸出的功能,因此不必加其它的輸出函數
require與include
1. require
常用於引入重要文档,若引入失敗會直接影響到當前整個腳本,引入失敗報 Error錯誤
2. include
常用於引入普通文档,若引入失敗不會對當前腳本有較大的影響,引入失敗報 Warning錯誤
3. require_once
避免重複引入,其他槼則同require
4. include_once
避免重複引入,其他槼則同include
header
用於定義 HTTP協議頭信息。
php
第二節 變量與常量
變量
聲明變量:$
命名槼則:字母數字下劃線、首字母不能爲數字、嚴格區分大小寫、且不能使用關鍵字!推薦駝峰命名法
變量銷毀:unset(變量名),被銷毀的變量在内存中被釋放
引用變量
變量引用:用不同的名字訪問同一個變量内容
$man="zhangsan"; $student=&$man; //用&符號引用 var_dump($man===$student);//true
常量
使用define關鍵字定義常量,常量命名要全部大寫,常量的數據類型不能是 資源、對象
定義常量
define("SCHOOL","清華大學");
判斷常量
var_dump( defined("SCHOOL") ); // true
變量與常量的差異
差異 | 變量 | 常量 |
定義 | $聲明 | define()函數定義 |
命名 | 大小寫敏感 | 必須大寫(行業槼範) |
賦值 | 可以重新賦值 | 不能再賦值 |
數據類型 | 8種數據類型 | 只能是標量 |
銷毀 | unset() 銷毀 | 不能銷毀 |
判斷方法 | isset() 判斷是否定義 | defined() 判斷是否定義 |
作用於 | 局部作用域 | 全局作用域 |
第三節 數據類型
八種數據類型
四種標量類型
– 布爾型(boolean)
– 整 型(integer)範圍:2^32或2^64(超出自動轉換爲浮點型)
– 浮點型(float)範圍:雙精度
– 字符串(string)
兩種複合類型
– 數組型(array)
– 對象型(object)
兩種特殊類型
– 資源型(resource)
– 空 型(null)
不同進制
$number1 = 0b10; // 0b開頭 二進制 結果:2
$number2 = 0123; // 0開頭 八進制 結果:83
$number3 = 0x123; // 0X開頭 十六進制 結果:291
對象型
具有一定功能和特征的單個事物,對象是屬性和方法的集合
資源型
變量可以是文档夾、一個文档、從數據庫中得到的結果集等,操作這個變量,相當於操作這些資源。
NULL型
null也是數據,通常表示一種狀態,變量沒有任何值,就用null表示。以下情況會得到null:
直接將一個變量賦值爲null
將一個變量銷毀後再次使用該變量
直接使用一個不存在的變量
第四節 數據類型轉換
自動類型轉換
在特殊運算時,會有自動類型轉換的情況
null 對象
未知變量(或被銷毀變量)
強制類型轉換
改變原變量類型
使用 settype() 函數可以將一個指定變量強制轉換爲另一種指定類型
不改變原變量類型
格式:新變量 = (指定變量類型) 原變量;
強制類型轉換:不改變原變量類型
定義一個存儲變量
$old = 1; $new; // 用於接收轉換之後的變量
開始轉換
$new = (Boolean) $old; // true $new = (Integer) $old; // 1 $new = (Float) $old; //float 1 $new = (String) $old; // "1" $new = (Array) $old; // Array $new = (Object) $sum; // Object
常用變量檢測函數
常用數學運算函數
第五節 字符串
三種定義方式
$num = 10;
單引號
$title = 'hxsd'.$num.'beijing';
雙引號 支持解析變量,不能解析表達式,例如:{$hxsd+1}
$school ="<div id='box'><h1>{$hxsd}</h1></div>";
定界符(可以任意取名)
$str2 = <<<mark<div id='box'><h1 class="main">{$hxsd}</h1></div>mark;
注意:
定界符中可以使用單、雙引號,可以解析變量
定界符中的字符串,會保留所有格式,包括各種空格(盡量頂格寫,避免開始的空格)
結束標記一定要頂格寫
開始、結束標記(上面代碼中的‘mark’)後不能再有空格等字符(包括注釋語句也不能有)
字符串支持折行,注意:折行位置會多一個空格
$txt="abcdefghijk"; //顯示結果:abcd efghijk
常用字符串操作函數
第六節 數組
數組類型
關聯式數組:下標爲有意義的字符串
索引式數組:下標爲默認從0開始的數值
定義數組
直接賦值方式定義
$a[] = 10; $a[] = 20; $a['name'] = '張三'; $a['sex'] = '男';
結果
/** * 0 => int 10 * 1 => int 20 * 'name' => string '張三' (length=9) * 'sex' => string '男' (length=3) */
使用array()函數
$b = array(10,20,30); $b = array('name'=>'張三', 'sex'=>'男', 'age'=>28);
快捷賦值
$c = [10,20,30];$c = ['name'=>'張三','sex'=>'男','age'=>28];
二維數組與多維數組
二維數組
$group = array('one'=>array('張三','李四','王五'), 'two'=>array('趙六','孫七'),);
定義一個三維數組
$class = array('class01'=>array( 'one'=>array('張三','李四','王五'), 'two'=>array('趙六','孫七'), ), 'class02'=>array( 'one'=>array('張三','李四','王五'), 'two'=>array('趙六','孫七'), ););
獲取李四
echo $class['class02']['one'][1]; //李四
數組的遍歷
for遍歷索引數組
$arr=[11,22,33,44,55]; for($i=0; $i<count($arr); $i++) { var_dump($arr[$i]); };
foreach
$f_arr=["name"=>"zhangsan","age"=>18,"sex"=>"m"]; foreach ($f_arr as $key=>$value) { echo $key.":".$value."<br>"; };
list(只用於索引數組)
list($a,$b,$c,$d,$e) = ["張三","李四","王五","小明","小紅"]; echo $a, $b, $c, $d, $e;
數組的輸出
$b = 3.1; $c = true; var_dump($b,$c); /* 輸出: float(3.1) bool(true) */
複制數組
$arr1=[111,222,333];$arr2=$arr1; // $arr2是個新數組 var_dump($arr2===$arr1); // false
用&引用數組
$arr3 = &$arr1; var_dump($arr3 === $arr1); // true
數組常用函數
數組轉JSON
第七節 運算符
$a=10; $b=20; $c="hxsd";
數字與數字相加:數學運算
echo $a+$b; // 30
數字與字符串相加
echo $a+'2018你好'; // 2028 數字開頭爲2018 echo "2018你好"+$a; // 2028 同上 echo $a+'你好2018'; // 10 以字母開頭字符串,轉換成0 echo "你好2018"+$a; // 10 同上
數字與bool值
echo $a+true; // 11 true:1 false:0