php mysql欄目介紹其學習歷程,干貨滿滿
推薦:php mysql
此文記錄自己學習PHP和mysql的過程。之前在網上簡單地學習了一下這兩門語言,并且自己編寫了PHP,可以正常連接mySQL,也可以插入數據。但是自己總覺得還是不太清晰。所以借了本O’REILLY的PHP,MySQL,JavaScript, & CSS。希望能夠理清一下編程思路,學得更加通透些,對自己以后編寫項目有所幫助。
首先,來了解一下,這幾門語言主要負責些什么。PHP是負責主要的在服務器上的工作,MySQL是負責所有的數據,CSS和JavaScript則是管理網頁的展現。然而JavaScript也能與PHP進行通信,無論什么時候需要更新一些服務器上的或是頁面上的信息。
PHP
PHP是相對松散的語言。也就是它的變量類型不需要在使用前被聲明。字符串內的數字可以被自動轉換為數字類型。PHP是用 ‘$’ 來定義變量的。比如:$ my_counter = 1;
使用空格(whitespace)讓代碼變得更加整潔清晰,當自己回頭再去查看的時候也比較容易理解。同時也幫助其他的開發人員去維護你的代碼。如果需要聲明一個數字變量,無論是Int類型還是Float類型都可以直接聲明。
立即學習“PHP免費學習筆記(深入)”;
例如:$ count = 17;$ count = 17.5;
PHP的變量起名規則
1. 以字母開始或 ‘_’(underscore);
2. 只能包含a-z, A-Z, 0-9 和 ‘_’ (underscore);
3. 不能包含空格,如果一定包含兩個單詞,一定用 ‘_’ (underscore)來分開;
4. 對大小寫是sensitive的,$High_Score與$high_score是不同的變量。
PHP的常量(constants)
1. 聲明一個常量不需要用($),一般以字符或下劃線開頭
2. 只能用define方法來賦值給常量 define ( ‘TIREPRICE’ , 100 ) ;
3.?在腳本中無法改變該值。
4.?與變量不同,常量貫穿整個腳本是自動全局的。
5. 盡量不要前后都使用(_)來起變量名。
設置常量,使用 define() 函數 – 它使用三個參數:
首個參數定義常量的名稱? ? 第二個參數定義常量值? ? 可選的第三個參數規定常量名是否對大小寫不敏感。默認是 false。
簡短風格 short style : $tireqty?非常方便,但是需要將register_globals配置選項置為on,由于安全性原因,該選項默認為off。
中等風格?Medium style: $_POST[ ‘ tireqty ‘ ]?推薦使用
冗長風格?Long style $HTTP_POST_VARS[ ‘ tireqty’ ]?已經被棄用
我們通常建議使用中等風格來聲明變量。如果你建立一個簡短風格,然后把中等風格賦值給它沒有安全問題,反而更容易被使用。$tireqty = $_POST [ ‘tireqty’ ] ;
PHP的字符串規則
單引號是不會把文字里中以$開頭的字符串作為變量的。如果要把它當做變量來看待那就需要用雙引號。如果字符串內要使用單引號的話,不能直接使用,這個和JavaScript一樣。需要轉義字符用“”來解決單引號問題。此外,t,n,r在雙引號里才有效。
PHP還提供了多行數列的操作符“
在使用(
echo和print命令的區別
這兩個命令是十分相似的。但是print是一個函數方法需要用到一個參數,然而echo是PHP語言的結構。在普通的文字輸出上,echo要比print稍微快一點,因為它不是一個函數不需要設置一個返回值。同時,因為echo它不是一個函數,所以不能被用于大量復雜的表達式,但是print卻可以。
PHP的函數方法
Function是用來區分出為了實現不同特殊功能的代碼。比如這個代碼打印三行字,但是如果我要打印十幾個的話,就需要不停復制黏貼這些代碼,無疑是讓代碼變得更為復雜和龐大。但是用了function就只需要使用一次函數就可以打印十幾次。它是代碼變得更簡潔并且可讀性更高。聲明function的方式與JavaScript一樣。
比如:
function longdate($timestamp){?
????return date(”l F jS Y”,$timestamp);
}
PHP的變量作用域(Variable Scope)
在PHP語言中,你可以決定變量的作用域,比如,只在函數里面使用,或者是全域范圍的,任何范圍都能被使用。
Local Variables(本地變量)是指變量被建立只被允許在函數中調用。它是零時性的儲存,一旦函數完成也就不存在了。
Global Variables(全局變量)有些時候我們也需要全局變量,因為你希望你所有的代碼都能調用到它。當需要聲明全局變量時,我們需要使用關鍵字global。不建議使用全局變量,實在沒有其他方法時,可以使用。因為一般程序是被打碎成多個小零件,這樣數據發生問題也是一些小問題容易被維護。但是如果上千行的代碼程序被發現你的全局變量出現了問題。那么將需要花非常大的精力與時間去維護它。同時,建議在為全局變量起名時,最好使用大寫字母。
Static Variables(靜態變量)當你使用一個變量希望它只能在函數中被調用,但是你也希望它能再下一次使用這個函數時,值不會被恢復到原來的值。這時我們就需要用到靜態變量。同時需要注意的是,靜態變量不能給予一個計算公式或者函數,必須賦一個實際的值。
比如:
static $int = 0; //Allowed
static $int = 1+2; //Disallowed (will produce a Parse error)
static $int = sqrt(144); //Disallowed
Superglobal Variables(超級全局變量)PHP 中的許多預定義變量都是“超全局的”,這意味著它們在一個腳本的全部作用域中都可用。
這些超全局變量是:
$GLOBALS
$_SERVER
$_REQUEST
$_POST
$_GET
$_FILES
$_ENV
$_COOKIE
$_SESSION
這些超級全局變量名都是使用_下劃線和大寫字母,所以在起名時應該避免重復以造成程序混亂。
PHP表達式(Expression)
布爾表達式,值得注意的一點是,在PHP中,TRUE的值為“1”,而FALSE的值為NULL,或者是空值。因為在一些語言里FALSE被定義為0或者-1。
此外,PHP會按照字面上的值(literals)理解去判斷變量類型。
比如:
$myname = “Brian”;
$myage = 37;
echo “a: ” . 73? ? ? ? ? ? ?. “
“; //Numeric literalecho “b: ” . “Hello”? ? ? . “
“; //String literalecho “c: ” . FALSE? ? ? . “
“; //Constant literalecho “d: ” . $myname? . “
“; //Variable string literalecho “e: ” . $myage? ? ?. “
“; //Variable numeric literal結果是:
a: 73 b: Hello c:? ? ? ? d: Brian? e: 37
PHP運算符(operators)
PHP提供了大量有用的運算符,比如計算,字符串和邏輯的運算符。“.”運算符用來連接字符串。
PHP 邏輯運算符(logical)
“or”返回值是布爾值。如果 $x 和 $y 至少有一個為 true,則返回 true。
“xor”返回值是布爾值。條件中不是A就是B。如果A就返回True,如果是B也返回True。但如果是A和B就返回False,如果即不是A也不是B就返回False。所以條件符合的有且僅有一個為 true,則返回 true。
PHP 結合性運算符(associativity)
這類型的運算符是從右到左計算。
Operator? ????????????????????????????????????????Description? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?Example
NEW? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? Create a new object
!? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? Logical NOT
~? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?Bitwise NOT
++? ?—? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? Increment and decrement
+ –? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?Unary plus and negation
(int)? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?Cast to an integer? ? ? ? ? ? ? ? ? ? ? ? $c = (int) ($a / $b);
(double)? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? Cast to a float
(string)? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? Cast to a string
(array)? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?Cast to an array
(object)? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? Cast to an object
@? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?Inhibit error reporting? ? ? ? ??
@是為了抑制錯誤顯示,讓用戶看不到,提升用戶體驗。注意:只是抑制錯誤,但是錯誤還是存在的。
=? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?Assignment
PHP條件表達式(Conditionals)
條件表達式是動態頁面的核心,它能夠簡單地根據不同的條件創造出不同的頁面結果。有三種表達方法:if,switch和?(三目運算符)。這個和JavaScript都是一樣的。
PHP循環(Looping)
能快速地周而復始地工作直到事情發生為止。循環方式有:while,do……while和for。
PHP的函數與對象
函數的好處:
1. 簡潔
2. 減少語法和其他編寫程序的錯誤
3. 減少程序文件的加載時間
4. 同時減少執行時間,因為每一個函數都僅僅被解析一次,無論它將被調用多少次。
5. 函數接受參數,這樣能夠被普遍使用,也同時能被特殊的情況使用。
PHP有上百種已經編寫好的函數,使它成為一個豐富的語言。
Include和require
require()的性能與include()相類似,都是包括并運行指定文件。不同之處在于:對include()語句來說,在執行文件時每次都要進行讀取和評估;而對于require()來說,文件只處理一次。這就意味著如果可能執行多次的代碼,則使用require()效率比較高。另外一方面,如果每次執行代碼時是讀取不同的文件,或者有通過一組文件迭代的循環,就使用include()語句。
require的使用方法如:require(“myfile.php”),這個語句通常放在PHP腳本程序的最前面。PHP程序在執行前,就會先讀入require()語句所引入的文件,使它變成PHP腳本文件的一部分。include使用方法和require一樣如:include(“myfile.php”),而這個語句一般是放在流程控制的處理區段中。PHP腳本文件在讀到include()語句時,才將它包含的文件讀取進來。這種方式,可以把程式執行時的流程簡單化。
include在用到時加載? ?require在一開始就加載
include/require_once后綴表示已加載的不加載
PHP系統在加載PHP程序時有一個偽編譯過程,可使程序運行速度加快。但include的文檔仍為解釋執行。include的文件中出錯了,主程序繼續往下執行,require的文件出錯了,主程序也停了,所以包含的文件出錯對系統影響不大的話(如界頁面文件)就用include,否則用require。
require()和include()語句是語言結構,不是真正的函數,可以像php中其他的語言結構一樣,例如echo()可以使用echo(“ab”)形式,也可以使用echo “abc”形式輸出字符串abc。require()和include()語句也可以不加圓括號而直接加參數。
include_once()和require_once()語句也是在腳本執行期間包括運行指定文件。此行為和include()語句及require()類似,使用方法也一樣。唯一區別是如果該文件中的代碼已經被包括了,則不會再次包括。這兩個語句應該用于在腳本執行期間,同一個文件有可能被包括超過一次的情況下,確保它只被包括一次,以避免函數重定義以及變量重新賦值等問題。
function_exists(”function name”)是判斷這個函數是否有效。
對象Object
面對對象(object-oriented programming OOP)讓函數提升到新的水平。當一些方法要被重用,那么就可以考慮把這些方法和數據放入到對象中去。一起想想看一個社交網站,它有很多部分組成。一個組成部分是要管理所有的用戶函數。比如讓新用戶注冊,和讓存在的用戶更改他們的信息。一般來說,我們會建立一些函數去管理這些并且請求MySQL數據庫去記錄所有的用戶。而我們知道對象后,完全可以建立一個名為User的對象,并且把所有的數據與方法放入到這個對象中里。那么無論什么時候當需要去操作一個用戶的數據時,我們就可以簡單地建立一個和User類有關的對象。對象中的數據被稱為屬性,對象中的函數被稱為方法。如果你發現需要類外一個類,這個類與User類很相似,但有些不同,這時我們就需要繼承User類。那么原來的User類就被成為父類(superclass),而新的類就被成為子類(subclass/derived class)。
聲明一個類(Declaring a Class)
在使用一個對象之前,必須用關鍵字class定義一個類。定義一個類包含類名(它是大小寫sensitive的),類的屬性,和類的方法。可以使用 ‘->‘ 來給變量/屬性進行賦值。這是變量不需要用$進行聲明。
構造函數(Constructors)
在類里面帶有參數并且與類名相同的方法被稱為構造函數。現在很多使用__construct來命名構造函數。當不再需要這個對象的時候,就需要調用destructor,來釋放這個對象所占的內存。但是destructor不需要設計,因為系統會自動釋放特定的內存。除非你用到了動態內存,那么你就是要自己設計一個destructor告訴系統釋放哪些內存。
聲明一個方法(Methods)
聲明一個方法與聲明一個函數非常類似,但還是有少許不同。比如,方法的命名開頭跟隨兩個下劃線(__)。$this是指代現在這個對象,并返回這個對象的屬性值。
靜態方法(static methods)
在php編程中,static關鍵字聲明一個屬性或方法是和類相關的,而不是和類的某個特定的實例相關,因此,這類屬性或方法也稱為“類屬性”或“類方法”
如果訪問控制權限允許,可不必創建該類對象而直接使用類名加兩個冒號“::”調用。
User::pwd_string();
class User
{
? ? static function pwd_string()
????{
????????echo “Please enter your password”;
????}
}
?>
聲明屬性(Declaring Properties)
聲明屬性不是必須在類里的,類里沒有屬性和方法但仍然是合法的。但是為了幫助自己和其他人更好地理解與維護代碼,還是建議把屬性的聲明放入到類里。
$object1 = new User();
$object1->name = “Alice”;
echo $object1->name;
class User {}
?>
聲明一個常量(Declaring Constant)
定義一個常量需要在常量名前加const。常量名一般使用大寫字母,使他們變得更為突出。當常量/變量使用關鍵字self和兩個冒號(::)時,就能夠被直接引用。
屬性和方法的作用域(Property and Method Scope)
PHP提供了3個關鍵字來控制屬性和方法的作用域。
1. public —— 這些屬性是用var和public關鍵字聲明的。pubilic與var是能夠被互換的,雖然這是不被贊成的。當外部的代碼要調用這個屬性,或者拓展類需要繼承它,我們就應該用public來聲明。
2. protected —— 這些屬性和方法只能被對象中的方法和任何子類引用。當不想被外部代碼來調用,但是拓展類希望繼承它,我們就可以用protected來聲明。
3. private —— 這些成員僅能被同一個類引用,子類也是不能引用的。當我們不想這些成員被外部任何代碼方法或者類來調用,就應該使用private來進行聲明。
靜態屬性和方法(static properties and methods)
靜態方法可以被直接調用,而屬性是不可以的。屬性的調用可以使用關鍵字self和雙冒號的方法來調用類內部的靜態屬性。
繼承(Inheritance)
任何類都能被繼承。減少代碼的重復性,只要改變一小部分,調整不同的地方。使用關鍵字extends進行拓展聲明。
PHP數組(Arrays)
is_array($array_name)返回布爾值,可以判斷這個數組是否是有效的。
sort($array_name, SORT_NUMERIC/STRING)通過數字和字符串從小到大排序。
rsort($array_name, SORT_NUMERIC/STRING)通過數字和字符串從大到小排序。
shuffle($array_name)打亂數組,隨機排序。
explode(‘ ‘,”string”)這個是十分有用的方法,他會把輸入的string,通過要求分隔成單個元素然后放入數組中。第一個參數是通過什么來分割,第二個是放入的string。
extract()這個方法可以很容易地把數組變成鍵值對的形式。經常可以用于$_POST和$_GET。
extract(array,extract_rules,prefix)有三個參數,
第一個array必需。規定要使用的輸入。
第二個extract_rules可選。extract() 函數將檢查每個鍵名是否為合法的變量名,同時也檢查和符號表中的變量名是否沖突。對非法、數字和沖突的鍵名的處理將根據此參數決定。可以是以下值之一:
可能的值:
-
EXTR_OVERWRITE – 默認。如果有沖突,則覆蓋已有的變量。
-
EXTR_SKIP – 如果有沖突,不覆蓋已有的變量。(忽略數組中同名的元素)
-
EXTR_PREFIX_SAME – 如果有沖突,在變量名前加上前綴 prefix。自 PHP 4.0.5 起,這也包括了對數字索引的處理。
-
EXTR_PREFIX_ALL – 給所有變量名加上前綴 prefix(第三個參數)。
-
EXTR_PREFIX_INVALID – 僅在非法或數字變量名前加上前綴 prefix。本標記是 PHP 4.0.5 新加的。
-
EXTR_IF_EXISTS – 僅在當前符號表中已有同名變量時,覆蓋它們的值。其它的都不處理。可以用在已經定義了一組合法的變量,然后要從一個數組例如 $_REQUEST 中提取值覆蓋這些變量的場合。本標記是 PHP 4.2.0 新加的。
-
EXTR_PREFIX_IF_EXISTS – 僅在當前符號表中已有同名變量時,建立附加了前綴的變量名,其它的都不處理。本標記是 PHP 4.2.0 新加的。
-
EXTR_REFS – 將變量作為引用提取。這有力地表明了導入的變量仍然引用了 var_array 參數的值。可以單獨使用這個標志或者在 extract_type 中用 OR 與其它任何標志結合使用。本標記是 PHP 4.3.0 新加的。
第三個參數,prefix可選。請注意 prefix 僅在 extract_type 的值是 EXTR_PREFIX_SAME,EXTR_PREFIX_ALL,EXTR_PREFIX_INVALID 或 EXTR_PREFIX_IF_EXISTS 時需要。如果附加了前綴后的結果不是合法的變量名,將不會導入到符號表中。前綴和數組鍵名之間會自動加上一個下劃線。
代碼如下:
????$a = ‘Original’;?
????$my_array = array(“a” => “Cat”,”b” => “Dog”, “c” => “Horse”);?
????extract($my_array);?
????echo “$a = $a; $b = $b; $c = $c”;?
?>?
輸出:?
$a = Cat;?
$b = Dog;?
$c = Horse?
使用全部參數:?
代碼如下:
????$a = ‘Original’;?
????$my_array = array(“a” => “Cat”,”b” => “Dog”, “c” => “Horse”);?
????extract($my_array, EXTR_PREFIX_SAME, ‘dup’);?
????echo “$a = $a; $b = $b; $c = $c; $dup_a = $dup_a;”;?????
?>?
輸出:?
$a = Original;?
$b = Dog;?
$c = Horse;?
$dup_a = Cat;?
在action.php中只要使用extract()函數將$_POST全局數據解開:?
action.php?
代碼如下:
????extract($_POST);? //相當于$username = $_POST[‘username’];? //$password = $_POST[‘password’];?
?>?
compact(var1,var2…)函數創建一個由參數所帶變量組成的數組。如果參數中存在數組,該數組中變量的值也會被獲取。
本函數返回的數組是一個關聯數組,鍵名為函數的參數,鍵值為參數中變量的值。
本函數執行的行為與extract()正好相反。
例子 1
使用不匹配變量的字符串,以及一個變量名數組:
????$firstname = “Bill”;
????$lastname = “Gates”;
????$age = “60”;
????$name = array(“firstname”, “lastname”);
????$result =compact($name, “location”, “age”);
????print_r($result);
?>
輸出結果:
Array ( [firstname] => Bill [lastname] => Gates [age] => 60 )
其他相關的方法:
current()?– 返回數組中的當前元素的值
end()?– 將內部指針指向數組中的最后一個元素,并輸出
next()?– 將內部指針指向數組中的下一個元素,并輸出
prev()?– 將內部指針指向數組中的上一個元素,并輸出
each()?– 返回當前元素的鍵名和鍵值,并將內部指針向前移動
printf(arg1,arg2,agr++)函數輸出格式化的字符串。arg1、arg2、arg++?參數將被插入到主字符串中的百分號(%)符號處。該函數是逐步執行的。在第一個 % 符號處,插入?arg1,在第二個 % 符號處,插入?arg2,依此類推。
參數? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?描述
format? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??必需。規定字符串以及如何格式化其中的變量。
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 可能的格式值:
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?%% – 返回一個百分號 %
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?%b – 二進制數
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?%c – ASCII 值對應的字符
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?%d – 包含正負號的十進制數(負數、0、正數)
????????????????????????????????????????????????????????????????????????????????????????????????????%e – 使用小寫的科學計數法(例如 1.2e+2)
????????????????????????????????????????????????????????????????????????????????????????????????????%E – 使用大寫的科學計數法(例如 1.2E+2)
????????????????????????????????????????????????????????????????????????????????????????????????????%u – 不包含正負號的十進制數(大于等于 0)
????????????????????????????????????????????????????????????????????????????????????????????????????%f – 浮點數(本地設置)
????????????????????????????????????????????????????????????????????????????????????????????????????%F – 浮點數(非本地設置)
????????????????????????????????????????????????????????????????????????????????????????????????????%g – 較短的 %e 和 %f
????????????????????????????????????????????????????????????????????????????????????????????????????%G – 較短的 %E 和 %f
????????????????????????????????????????????????????????????????????????????????????????????????????%o – 八進制數
????????????????????????????????????????????????????????????????????????????????????????????????????%s – 字符串
????????????????????????????????????????????????????????????????????????????????????????????????????%x – 十六進制數(小寫字母)
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? %X – 十六進制數(大寫字母)
????????????????????????????????????????????????????????????????????????????????????????????????????附加的格式值。必需放置在 % 和字母之間(例如 %.2f):
????????????????????????????????????????????????????????????????????????????????????????????????????+ (在數字前面加上 + 或 – 來定義數字的正負性。默認地,只有負數做標記,正數不做標記)
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ‘ (規定使用什么作為填充,默認是空格。它必須與寬度指定器一起使用。)
????????????????????????????????????????????????????????????????????????????????????????????????????– (左調整變量值)
????????????????????????????????????????????????????????????????????????????????????????????????????[0-9] (規定變量值的最小寬度)
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?.[0-9] (規定小數位數或最大字符串長度)
????????????????????????????????????????????????????????????????????????????????????????????????????注釋:如果使用多個上述的格式值,它們必須按照上面的順序進行使用,不能打亂。
arg1? ? ????????????????????????????????????????????????????????????????????????????????????????必需。規定插到?format?字符串中第一個 % 符號處的參數。
arg2? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 必需。規定插到?format?字符串中第二個 % 符號處的參數。
arg++? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?可選。規定插到?format?字符串中第三、四等等 % 符號處的參數。
PHP printf() 函數
附錄:
syntax? ? ? ? ? ? ? ?/’sint?ks/? ? ? ? ? ? ? ?語法?
keep track of? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?記錄
manipulate? ? ? ?/m??n?pjule?t/? ? ? ? ? 操作
colon? ? ? ? ? ? ? ? /?k??l?n/? ? ? ? ? ? ? ? ? 冒號
deprecate? ? ? ? ?/?depr?ke?t/? ? ? ? ? ? ?不贊成