Artikel ini membawakan anda nota pengenalan PHP. Mata pengetahuan yang direkodkan di dalamnya adalah sangat terperinci Sebagai program bahasa, kekhususan bahasa PHP secara beransur-ansur saya harap semua orang dapat merasakan pesona PHP daripadanya . , semoga membantu semua.
PHP (Hypertext Preprocessor) pada asalnya adalah singkatan dari Personal Home Page dan telah dinamakan semula secara rasmi sebagai "PHP :Hypertext Prapemproses". Sejak Internet domestik mula berkembang pada tahun 1990-an, maklumat Internet telah merangkumi hampir semua bidang pengetahuan dalam aktiviti harian kita, dan secara beransur-ansur menjadi bahagian yang amat diperlukan dalam kehidupan, pengajian dan kerja kita. Menurut statistik, sejak 2003, saiz halaman web negara saya pada asasnya mengekalkan kadar pertumbuhan dua kali ganda, dan menunjukkan arah aliran menaik. Sebagai bahasa pembangunan program laman web yang paling popular hari ini, bahasa PHP mempunyai kelebihan kos rendah, kelajuan pantas, mudah alih yang baik, dan perpustakaan fungsi terbina dalam yang kaya, oleh itu, ia digunakan oleh semakin banyak syarikat dalam pembangunan laman web. Walau bagaimanapun, dengan peningkatan berterusan Internet, banyak masalah telah timbul dalam bahasa PHP.
Mengikut keperluan tapak web dinamik, bahasa PHP, sebagai program bahasa, kekhususannya secara beransur-ansur muncul dalam proses permohonan, dan tahap teknikalnya secara langsung akan mempengaruhi kecekapan pengendalian tapak web. Ciri-cirinya ialah ia mempunyai kod sumber terbuka dan sangat serupa dengan bahasa tujuan umum seperti bahasa C dari segi pengaturcaraan Oleh itu, ia mudah difahami dan mempunyai kebolehkendalian yang kuat semasa operasi. Pada masa yang sama, bahasa PHP mempunyai tahap penghantaran, pemprosesan dan output data yang tinggi, dan boleh digunakan secara meluas dalam sistem Windows dan pelbagai jenis pelayan Web. Jika jumlah data adalah besar, bahasa PHP juga boleh meluaskan permukaan pautan dan menyambung ke pelbagai pangkalan data untuk mengurangkan tekanan penyimpanan, pengambilan dan penyelenggaraan data. Dengan perkembangan teknologi, enjin carian bahasa PHP juga boleh disesuaikan untuk menyediakan perkhidmatan yang diperibadikan, seperti mengklasifikasikan, mengumpul dan menyimpan data mengikut keutamaan pelanggan, yang meningkatkan kecekapan operasi data.
(1) Sumber Terbuka dan Percuma
Memandangkan kod sumber penterjemah PHP adalah awam, faktor keselamatan adalah agak tinggi Laman web mewah boleh menukar penterjemah PHP itu sendiri. Selain itu, penggunaan persekitaran runtime PHP juga adalah percuma.
(2) Kepantasan
PHP ialah bahasa yang sangat mudah dipelajari dan digunakan Ciri sintaksnya serupa dengan bahasa C, tetapi ia tidak mempunyai operasi alamat bahasa C yang kompleks Selain itu, konsep berorientasikan objek ditambah, dan ia mempunyai peraturan tatabahasa yang ringkas, menjadikannya sangat mudah untuk dikendalikan dan disunting, dan sangat praktikal.
(3) Kebolehlanjutan sambungan pangkalan data
PHP boleh mewujudkan sambungan dengan banyak pangkalan data arus perdana, seperti MySQL, ODBC, Oracle, dll. PHP menggunakan fungsi terkumpul yang berbeza untuk mewujudkan sambungan dengan pangkalan data ini Untuk sambungan, PHPLIB ialah perpustakaan asas yang biasa digunakan yang disediakan untuk urus niaga umum.
(4) Gunakan berorientasikan proses dan berorientasikan objek bersama-sama
Dalam penggunaan bahasa PHP, anda boleh menggunakan berorientasikan proses dan berorientasikan objek masing-masing, dan anda boleh mencampurkan proses PHP- berorientasikan dan berorientasikan objek bersama-sama, yang merupakan sesuatu yang tidak dapat dilakukan oleh banyak bahasa pengaturcaraan.
(1) Popular dan mudah digunakan
PHP merupakan bahasa pengaturcaraan yang paling popular pada masa ini, tidak ada keraguan mengenainya. Ia memacu lebih daripada 200 juta tapak web di seluruh dunia, dan lebih daripada 81.7% tapak web awam di dunia menggunakan PHP di bahagian pelayan. Struktur data PHP yang biasa digunakan semuanya terbina dalam Ia mudah dan mudah digunakan, tidak rumit sama sekali, dan keupayaan ekspresinya agak fleksibel.
(2) Terdapat banyak jawatan pembangunan
Dalam pengaturcaraan tapak web sebelah pelayan, PHP akan membantu anda mencari pekerjaan dengan lebih mudah. Banyak syarikat berkaitan Internet menggunakan rangka kerja pembangunan PHP, jadi boleh dikatakan permintaan pasaran untuk pengaturcara pembangunan PHP masih agak besar.
(3) Masih membangun
PHP sentiasa serasi dengan teknologi seperti penutupan dan ruang nama, sambil mengambil kira prestasi dan rangka kerja yang popular pada masa ini. Selepas versi 7, ia telah menyediakan aplikasi berprestasi tinggi.
(4) Kebolehimplanan yang kuat
Semasa proses menaik taraf kerentanan tampalan bahasa PHP, bahagian teras bahasa PHP mudah dilaksanakan dan cepat diimplan.
(5) Kebolehskalaan yang kuat
Semasa proses aplikasi pangkalan data, bahasa PHP boleh mendapatkan semula pelbagai jenis data daripada pangkalan data dan mempunyai kecekapan pelaksanaan yang tinggi.
(1) Tafsiran PHP dan mekanisme operasi
Dalam PHP, semua pembolehubah adalah peringkat halaman, sama ada pembolehubah global atau ahli statik kelas, akan dikosongkan selepas halaman dilaksanakan.
(2) Kepincangan reka bentuk dan kekurangan perhatian PHP dipanggil bahasa legap kerana tiada jejak tindanan dan pelbagai input rapuh. Tiada falsafah reka bentuk yang jelas. PHP awal dipengaruhi oleh Perl, perpustakaan standard tanpa parameter telah diperkenalkan dari bahasa C, dan bahagian berorientasikan objek dipelajari dari C dan Java.
(3) Sokongan yang lemah untuk rekursi
PHP tidak pandai membuat rekursi. Had bilangan fungsi rekursif yang boleh diterimanya adalah jauh lebih kecil daripada bahasa lain.
//...Ulasan baris tunggal
#......Komen satu baris
/*..........*/ Komen berbilang baris
$array=NAME; Nama pembolehubah mesti bermula dengan huruf atau garis bawah, bukan nombor dan tidak boleh ada ruang di tengah! Kes sensitif!
$x=5; $X=7; Output adalah hasil yang berbeza
<?php $a = 1; $A = 2; echo $a . "<br>"; echo $A; ?>
Pembolehubah setempat
<?php $a=1; //全局变量 function test() { //声明一个函数,名字为 test $a=15; //函数内的变量,为局部变量 echo "内部输出结果:".$a; } test(); echo "<br>"; echo "外部输出结果:".$a; ?>
<?php $a=1; function test() { //声明一个函数,名字为 test global $a; //在函数内声明并引用外部变量,注意这里是小写 global echo $a; echo "<br>"; } test(); //使用函数 echo $a; ?>
<?php $a=10; $b=20; $c=30; function test() { $a=100; $GLOBALS['a']=$GLOBALS['b']+$GLOBALS['c']; //引用全局变量,这里的 GLOBALS 必须大写 echo $a."<br>"; } Test(); //函数名不区分大小写 echo "<br>"; echo $a; ?>
<?php function test() { static $a = 0; //静态作用域,保留变量值 echo $a . ""; $a++; } test();//不使用static的话,每次输出都是 0 echo "<br>"; test(); echo "<br>"; test(); ?>
<?php $a = 10; $b = 20; function test() { $a = 30; $b = 40; $c = $a + $b; echo "函数内运算值:".$c; echo "<br>"; } test(); $c = $a + $b; echo "函数外运算值:".$c; ?>
Perbezaan antara gema dan cetakan:
gema "123","456","789";//Boleh mengeluarkan berbilang rentetan secara berterusan
cetak "123","456" ; //Ralat output
Pemutus talian:
gema "
";
gema "n";
gema PHP_EOL; //Pemutus talian
Jenis pemboleh ubah kembali: var_dump
<?php $a = "1111"; $b = 123; $c = null; echo var_dump($a) . "<br>"; echo var_dump($b) . "<br>"; echo var_dump($c) . "<br>"; $d = array('a', 1, abc); //数组 echo var_dump($d) . "<br>"; $e = true; echo var_dump($e); ?>
<?php $text1="ni hao"; $text2="hahaha"; echo $text1." ".$text2."<br>"; //引用多个变量用 点 . (英文)连接 为空格 $a = strlen($text1);//计算字符串长度数 echo $a; ?>//空格也算作一个字符
Rujukan yang kuat dan rujukan yang lemah
<?php $text1 = "ni hao"; echo "$text1" . "<br>";// “ ” 双引号输出会显示变量值 echo '$text1';// ‘’ 单引号会显示变量名本身 ?>
Peningkatan dan pengurangan output
<?php $x = 10; echo ++$x;//先自增后输出 echo "<br>"; $a=15; echo --$a . "<br>";//先自减后输出 $y = 20; echo $y++ . "<br>";//先输出后自增 $b=30; echo $b--;//先自增后输出 ?>
jika penghakiman bersyarat
<?php $x = 10; $y = 20; if ($x > $y) {//判断 x 和 y 的大小,如果满足 $x > $y 就输出 true echo "true"; }else if($x==$y) {//else if 如果上面的判断不满足,再次判断 $x==$y 是否相等 ,如果满足就输出 $x."等于"$y; echo $x."等于"$y; } else {//如果上面的判断都不满足就输出 false echo "false"; } ?>
<?php $x= (3>4)? "true":"false";//三元运算符 echo $x; ?>
tukar penghakiman
<?php $a="abc"; switch ($a) { case 'red': echo "red"; break; //跳出整个循环体,continue跳出本次循环体,继续执行后面的循环体。 case 'green': echo "green"; break; case 'black': echo "black"; break; default: echo "not color"; } ?>
Array
<?php $cars = array("BMW", "BinLi", "大众"); echo "I like " . "$cars[0]", " ", "$cars[1]", " ", "$cars[2]"; ?>
<?php $cars = array(); $cars[0] = "BMW"; $cars[1] = "BINlix"; $cars[2] = "大众"; echo "I like " . "$cars[0]", " ", "$cars[1]", " ", "$cars[2]"; ?>
<?php $cars = array(); $cars[0] = "BMW"; $cars[1] = "BINlix"; $cars[2] = "大众"; echo count($cars) . "<br>";// count 返回数组长度 echo "I like " . "$cars[0]", " ", "$cars[1]", " ", "$cars[2]"; ?>
count Dapatkan panjang tatasusunan
var_dump() Kembalikan jenis data
strlen(); 🎜 >
array(); Cipta tatasusunan$arrayname=array('name' =>"icq",'age'=>20,'jantina'=>true); / Tatasusunan bersekutugema $arrayname["name"];$arrayName=array('1',"zhangsan",20,false,"beijingchangping");//nombor jenis Arrayecho $arrayName[3]; //Boolean true prints 1<?php $cars = array("BMW", "BinLi", "大众"); $arrlength = count($cars); for ($x = 0; $x < $arrlength; $x++) { echo $cars[$x] . "<br>"; }//只输出值 ?>
<?php $cars = array("BMW", "BinLi", "大众"); $arrlength = count($cars); print_r($cars);//数据类型,下标值,值都打印出来 ?>
<?php $age = array("gao" => "30", "li" => "20", "zhang" => "10"); echo "gao is " . " " . $age['gao'] . " " . " years old."; ?>
<?php $age = array(); $age["sun"] = ["20"]; $age["liu"] = ["30"]; $age["zhang"] = ["40"]; print_r($age); ?>
多维数组
<?php $cars = array( array("111", 100, 50), array("222", 200, 100), array("333", 300, 150), ); echo $cars[1][0]; ?>
<?php $age = array(); $age["sun"] = ["20"]; $age["liu"] = ["30"]; $age["zhang"] = ["40"]; // print_r($age); foreach ($age as $key => $value) { echo "name is " . $key . " old " . $value . "<br>"; } ?>
排序:
<?php $cars = array("Blinli", "wzida", "muling"); $x = sort($cars); echo $x; print_r($cars); ?>
<?php $cars = array("Blinli", "wzida", "muling"); $x = rsort($cars); echo $x; print_r($cars); ?>
<?php $x = 10; $y = 29; function add() { // global $x, $y; // $z = $x + $y; // echo $z; $GLOBALS['z'] = $GLOBALS['x'] + $GLOBALS['y']; echo $GLOBALS['z']; } add(); ?>
PHP $_REQUEST 用于收集 HTML 表单提交的数据
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> </head> <body> <form method="POST" action="request.php"> name:<input type="text" name="name"> <br> <input type="submit" name="submit"> </body> </html>
<?php $name = $_REQUEST['name']; echo $name; ?>
循环:
<?php $a = 0; while ($a <= 10) { echo "number is :" . $a . "<br>"; $a++; } ?>
do while 循环:
<?php $i = 0; do { //先循环 $i++; echo "number is :" . $i . "<br>"; } while ($i < 5);//再判断 ?>
<?php function add($x, $y) { $z = $x + $y; return $z; // echo $z; } // add(5, 15); echo "1+16" . "=" . add(1, 16); ?>
函数:
<?php function add() { $x = 10; $y = 20; $z = $x + $y; echo $z; } add(); ?> <?php function add($x, $y) { $z = $x + $y; echo $z; } add(5, 15); ?>
<?php class Person { //定义一个类,名称为 Person 使用驼峰命名法,不能用数字开头,类似于变量的命名方式。 var $name; //定义一个变量,值为空 function say() { //定义一个函数 echo "my name is ".$this->name; } } $xm=new Person; //实例化对象,具体的使用方式 $xm->name="小明"; //对象属性的赋值 $xm->say(); //访问对象的方法 ?>
超级全局变量:
<?php $string = "123"; //变量 define("DEMO", true); //常量 print_r($GLOBALS); //超级全局变量 ?>
$_SERVER['PHP_SELF']; //显示头部信息
<!DOCTYPE html> <html> <head> <title></title> <meta charset="utf-8"> </head> <body> <!-- <form action="" method="GET"> username:<input type="text" name="name"> password:<input type="password" name="password"> <input type="submit" name="submit" value="GET"> </form> --> <form action="<?php echo $_SERVER['HTTP_SELF']; ?>" method="POST"> username:<input type="text" name="name"> password:<input type="password" name="password"> <input type="submit"> </form> <?php echo "提交的内容: <font style='color:red'>" . @$_POST["name"] . @$_POST["password"] . "</font>" ?> </body> </html> //在PHP中通过打印函数引入我们的HTML+CSS+JS
1、mysql PHP<5.5版本 2012年后不建议使用,安全性差
2、mysqli mysql的扩展,mysql的升级版,安全性高,只能用于操作mysql数据库
一、面向对象的方法 NEW
二、面向过程的使用方法
3、PDO PHP DATA OBJECT 目前支持链接数据库类型12种,安全性高,基于面向对象的使用方式。
<?php $hostname="127.0.0.1"; $name="root"; $pass="root"; $db="messagebox"; $conn=mysqli_connect($hostname,$name,$pass,$db); if (!$conn) { die("连接失败".mysqli_connect_error());/* mysqli_connect_error()该函数保存了连接数据库的错误信息 */ } /*create table students( uid int(15) not null auto_increment, name varchar(50) not null, gender char(2), message text, primary key(uid) )*/ $sql="select * from users where id=1 "; // mysqli_query($conn,$sql);执行成功返回true $query_result=mysqli_query($conn,$sql); if ($query_result) { /*如果执行成功就会执行如下的代码*/ $result_numbers=mysqli_num_rows($query_result);/*查询出数据库中记录条数,具体的数据没出来*/ if ($result_numbers>0) { $all_result=mysqli_fetch_all($query_result); /*mysqli_fetch_assoc将查询的结果转换为关联型数组*/ //mysqli_fetch_array()关联型和数字型 //mysqli_fetch_all()数字型 //var_dump($all_result); //$all_result它是一个mysqli_fetch_all处理之后的数据,该数据是一个数组,数组的长度取决于sql的执行 //如果结果是一个记录,则$all_result的长度是1 //如果结果是二个记录,则$all_result的长度是2 //$all_result保存的内容也是数组,需要遍历显示数据内容 foreach ($all_result as $key => $value) { foreach ($value as $key => $value) { echo $value."\n"; } } } else{ echo "没数据!"; } } else{ echo "查询失败".mysqli_error($conn); /* mysqli_error($conn)保存了执行SQL语句的错误信息 */ } mysqli_close($conn); ?>
解决乱码:
echo ""; //指定字符集
或者:
header("Content-Type:text/html;charset=utf-8");
<?php // echo "<meta charset='utf-8'>"; //指定字符集 header("Content-Type:text/html;charset=utf-8"); echo '<form method="POST" action="#"> name:<input type="text" name="name"> psswd:<input type="password" name="pwd"> <input type="submit" name="submit"> </form>'; $name = @$_POST['name']; //$_POST 对应 form method="POST" $pwd = @$_POST['pwd']; //接收数据 if ($name != "" && $pwd != "") { //判断当前提交的数据是否为空,不为空的情况下执行下面的代码 echo "UserName is : " . $name . "<br>"; echo "PassWord is : " . $pwd; } ?>
(isset($name) && isset($pwd))
isset 检测变量是否设置,不为NULL
如果检测的对象是""(空),返回值是 1 false
var_dump 判断数据类型
使用 define(变量的KEY(最好大写),变量的value,true/false,)
define("UNMBER","this is a hacker");//不能用 $ 数字 开头
<?php define("UNMBER", "this is a hacker", true); //定义常量 echo UNMBER . "<br>";//true 忽略大小写,默认是false echo unmber; ?>
<?php //结合函数使用 define("UNMBER", "this is a hacker", true); //定义常量 echo UNMBER . "<br>"; echo unmber . "<br>"; function test() { echo UNMBER; } test(); ?>
<?php $string="1234"; echo strlen($string); //计算字符串长度 echo $string[0]; //以下标方式取值 ?>
反转:
<?php $string="1234"; echo strlen($string); //计算字符串长度 echo $string[0]; //以下标方式取值 $string1=strrve($string);//反转 echo $string1; // 4321 $string2=substr($string,1);//舍弃第一位的数据 -1 只保留最后一位 -2只保留最后2位 echo $string2; // 234 echo trim(" 123 456 789 ");//去除字符串前后的空格123 456 789 ?>
cmd-->php~\php -r "phpinfo();"
php~\php -f ".php文件,可以拖拽到CMD窗口"
$str1 = "123";
echo $str1 .= "456";
PHP 表单
HTML
style 选择器:
.error{}
p{}
#ID {}
echo htmlspecialchars(""); //实体化代码输出,忽略代码本身输出内容
echo stripcslashes("i\\m abc"); //删除转义符
trim 去除左右两端的空格
echo trim(" 123 ");
preg_match( /匹配的表达式/(要用正则表达式),被匹配的字符串),返回值是 int (0|1) bool
匹配上,返回 1 false 否则为 true 0
echo preg_match("/php/", "you know the php is bester language");
!preg_match 取反
Delimiter must not be alphanumeric or backslash in 分隔符不能是字母数字和 反斜线 。
span 组合行内元素 class
文件包含:引入某些文件,去使用该文件的内容。
方式有4种:
1、include "文件路径/文件名";
如果引入文件错误,会报警告Warning,后续代码依旧会执行。
2、include_once "文件";
用法同 include 基本一致,只需包含一次,后续可一直使用。
3、require "文件";
包含文件时,如果找不到,会报错ERROR,后续的代码均无法执行。
4、require_once "文件";
用法同require一致,只需包含一次,后续可一直使用。
支持目录跳转,可以使用相对路径 ../../..file 或者绝对路径
copy 1.png/b+1.txt/a 2.png
a 表示是ASCII格式
b 表示该文件是二进制文件
把文本文件加装到图片文件中。
文件包含,引入某些文件,去使用该文件中内容,在PHP中文件包含的函数有4个:
(1)include "文件" /include("文件")
包含文件时,如果找不到被包含的文件会警告,后续的代码依旧知道
(2)include_once "文件"
用法和include用法基本一致,包含文件只需要一次即可,后续可以一直使用
(3)require "文件"
包含文件时,如果找不到会报致命错误,其后续的代码均不执行
(4)require_once "文件"
用法和require用法一致,包含文件时只需要包含一次即可
被包含过来的文件中,如果按照PHP的标准语法来写代码,那么就会执行该代码;如果不是PHP语法写的文件,就会读取出来
copy 1.png/b+1.txt/a 2.png
a 表示该文件是ASCII文本格式
b 表示该文件是二进制文件
Sesi: Kaedah atau cara untuk menghantar data antara pelayan dan pengguna Satu saluran perlu diwujudkan sebelum ini saluran boleh menghantar data. Sesi diuruskan melalui kuki pada klien dan sesi diuruskan pada pelayan melalui sesi.
Perbandingan kuki dan sesi:
1 Kuki disimpan dalam penyemak imbas pengguna dan ditetapkan oleh pelayan melalui set-kuki dalam pakej pemulangan keadaan sesi antara pelayan. Data kuki hanya boleh diperolehi selepas berjaya log masuk Data ini biasanya sensitif masa dan pengguna perlu log masuk semula selepas tamat tempoh. Dengan data kuki, setiap permintaan pengguna akan membawa kuki, dan pelayan akan mengesahkan kesahihan dan ketepatan masa kuki tersebut perlu mengikut dasar penyemak imbas
2 di bahagian pelayan dan mewakili keadaan sesi pengguna dan masa pelayan dan kuki berada dalam surat-menyurat satu dengan satu Pelayan juga perlu mengingati pengguna yang log masuk ke tapak. direktori tmp dalam bentuk fail , formatnya ialah: sess_XXXX (contohnya: sess_nti62h7rrrnb5udpvfbad13cg5s9kqrm Kuki yang diberikan oleh pelayan kepada penyemak imbas pada masa ini ialah: nti62h7rrrnb5udpvfbad13crmg5s9k sebagai pelayan akan memerlukan pengguna untuk log masuk semula.
Cara melihat kuki:
1 Masukkan dalam URL halaman yang sedang anda log masuk, javascript:alert(document.cookie)
2. . Masukkan dalam konsol: alert(document.cookie) atau document.cookie
3. Dalam alat pengurusan rangkaian yang disertakan dengan penyemak imbas.
setcookie("key","123"); hendaklah ditulis sebelum kod HTML.
setcookie("name","456",time() 5);
gema $_COOKIE["name"]."
";
setcookie("name","value",time()-3600);//Delete cookie
print_r($_COOKIE);
$_SEESION["id"]=1;
$_SEESION["demo"]=true;
unset($_SEESION["id"]);//Padamkan nilai dalam seesion
session_destroy() ;/ /Kosongkan semua nilai SEESION
session_start();//Open SESSION
pemalam pembangun web
fopen (cara membuka fail,,,):
r Baca sahaja
r Baca dan tulis
w Terbuka untuk menulis, buat fail jika ia tidak wujud
a Tambah kandungan
a Baca dan tambahkan
$file=fopen("test.txt","a ");
fread($file,1024);
feof (); Periksa sama ada penghujung fail dicapai
fclose($NAME); >
r Baca sahajar Baca dan tulis
w Buka untuk menulis, cipta fail jika ia tidak wujud
a Tambah kandungan
a Baca dan tambah, jika fail tidak wujud Kemudian buat fail
$file=fopen("test.txt","a ");
Baca fail
fread($file,1024); // Baca fail
feof(); Baca fail
sementara (!feof($file)) { //Tentukan sama ada penghujungnya tercapai
echo fgets($file)."
";//Sahaja baca satu baris pada satu masa
}
sambil ( !feof($file)) { //Tentukan sama ada penghujungnya tercapai
echo fgetc($file). "
";//Hanya baca satu baris pada satu masa
}
nyahpaut(); 🎜>
fputs();echo file_get_contents("123. txt"); ,"" );
echo file_get_contents("1.php");
Alat Juruweb
$str="PD9waHAgcGhwaW5mbygpOz8 ";
Jika anda berminat, anda boleh klik pada "Tutorial Video PHP" untuk mengetahui lebih lanjut tentang pengetahuan PHP.
Atas ialah kandungan terperinci Koleksi paling komprehensif nota pengenalan PHP dalam sejarah (perkongsian ringkasan). Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!