記錄學習PHP與mySQL的辛酸史

php mysql欄目介紹其學習歷程,干貨滿滿

記錄學習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是一個函數方法需要用到一個參數,然而echoPHP語言的結構。在普通的文字輸出上,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 literal

echo “b: ” . “Hello”? ? ? . “
“; //String literal

echo “c: ” . FALSE? ? ? . “
“; //Constant literal

echo “d: ” . $myname? . “
“; //Variable string literal

echo “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)

條件表達式是動態頁面的核心,它能夠簡單地根據不同的條件創造出不同的頁面結果。有三種表達方法:ifswitch?(三目運算符)。這個和JavaScript都是一樣的。


PHP循環(Looping)

能快速地周而復始地工作直到事情發生為止。循環方式有:whiledo……whilefor。


PHP的函數與對象

函數的好處:

1. 簡潔

2. 減少語法和其他編寫程序的錯誤

3. 減少程序文件的加載時間

4. 同時減少執行時間,因為每一個函數都僅僅被解析一次,無論它將被調用多少次。

5. 函數接受參數,這樣能夠被普遍使用,也同時能被特殊的情況使用。

PHP有上百種已經編寫好的函數,使它成為一個豐富的語言。


Includerequire

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 —— 這些屬性是用varpublic關鍵字聲明的。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++)函數輸出格式化的字符串。arg1arg2arg++?參數將被插入到主字符串中的百分號(%)符號處。該函數是逐步執行的。在第一個 % 符號處,插入?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/? ? ? ? ? ? ?不贊成

? 版權聲明
THE END
喜歡就支持一下吧
點贊12 分享