Sintaks asas NodeJs dan types_node.js

WBOY
Lepaskan: 2016-05-16 16:14:18
asal
1505 orang telah melayarinya

ditulis di hadapan

Hari ini saya ingin menyemak pengetahuan tentang jenis-jenis Node Saya ingin meringkaskannya. Saya melihat satu artikel di Googol, tetapi pautan asal tidak ada lagi ada sebarang pertanyaan, sila hubungi saya!

Artikel ini adalah mengenai asas-asas JS, pakar akan melangkaunya secara automatik! Saya tidak menulis banyak tentang js sebelum ini, dan saya agak lemah dalam bidang ini, jadi saya juga menghadapi masalah semasa menulis nod Di sini saya akan menambah pengetahuan kepada diri saya sendiri.

Teks

Node.js adalah berdasarkan bahasa skrip JavaScript. Ciri umum kebanyakan bahasa skrip ialah "menaip lemah".

Berbeza dengan PHP, PHP tidak perlu mengisytiharkan pembolehubah baharu walaupun ia mempunyai pembolehubah baharu, manakala JavaScript masih memerlukan var untuk mengisytiharkannya. Dan var ini merangkumi makna semua jenis seperti int, rentetan, char, dll. dalam C, malah fungsi.

Semua kandungan artikel ini dan artikel berikut disunting menggunakan vim di bawah Linux atau Cygwin (jika tidak, sila tukarkannya kepada kaedah anda sendiri), dan kemudian lihat hasilnya pada baris arahan.

Tatabahasa Asas

Pengisytiharan boleh ubah

Dalam C/C, kami mengisytiharkan pembolehubah seperti ini:

```C

Salin kod Kod adalah seperti berikut:

void foo() {}
int a = 0;
char b = 'a';
terapung c = 1.0f;
void (*d)() = foo; ///<

Dan dalam Node.js ia kelihatan seperti ini:

```javascript

Salin kod Kod adalah seperti berikut:
fungsi foo() {}
var a = 0;
var b = 'a';
var c = 1.0;
var d = foo;

Jadi, tidak kira apa jenis pembolehubah itu, ia diselesaikan dengan var dalam Node.js.

Penyataan gelung

untuk…saya

Pernyataan gelung ini pada asasnya sama dengan C/C, kedua-duanya adalah

```C

Salin kod Kod adalah seperti berikut:
untuk(int i = 0; i < foo; i )
{
//...
}

Memandangkan Node.js ditaip dengan lemah, anda hanya perlu:

```javascript

Salin kod Kod adalah seperti berikut:
untuk(var i = 0; i < foo; i ) {
//...
}
untuk…dalam

Ini ialah pernyataan gelung pasca taip, serupa dengan foreach PHP.

Sebagai contoh, kami mempunyai objek JSON seperti berikut:

javascript

Salin kod Kod adalah seperti berikut:
var foo = {
"hello" : "dunia",
"nod" : "js",
"blahblah" : "bar"
};

Pada masa ini kita boleh gunakan untuk...dalam untuk menggelung melalui:

javascript

Salin kod Kod adalah seperti berikut:
for(var key in foo) {
console.log(key ": " foo[key]);
}

Jika kita menaip arahan berikut pada baris arahan:

Salin kod Kod adalah seperti berikut:
$ node foo.js

Kandungan berikut akan dipaparkan pada skrin:

Salin kod Kod adalah seperti berikut:
hello
: dunia
nod: js
blahblah: bar

Petua: Seperti yang anda boleh lihat daripada di atas, pernyataan for...in digunakan untuk melintasi nama utama objek, tatasusunan dan objek JSON, tetapi tidak memberikan traversal nilai utama. Jika anda ingin mendapatkan nilai kunci, anda hanya boleh mendapatkannya dalam bentuk foo[]. Ini agak berbeza daripada foreach PHP.

sambil…buat, buat…sambil

Saya tidak akan menjelaskan perkara ini tidak jauh berbeza daripada bahasa lain. Cuma jika terdapat perisytiharan berubah, anda perlu menggunakan var.

Operator

, -, *, /

Itu sahaja untuk pengendali ini. Apa yang perlu anda perhatikan ialah . Ia boleh beroperasi pada kedua-dua rentetan dan operasi berangka. Walaupun bahasa yang ditaip lemah mengatakan bahawa jenis itu lemah, nombor kadang-kadang boleh muncul dalam bentuk rentetan, dan rentetan kadang-kadang boleh muncul dalam bentuk nilai angka, tetapi apabila perlu, kita masih perlu menyatakan jenisnya We boleh Gunakan kod berikut untuk melihat hasilnya:

Salin kod Kod adalah seperti berikut:

var a = "1";
var b = 2;
console.log(a b);
console.log(parseInt(a) b);

ParseInt di sini ialah fungsi terbina dalam Node.js, yang digunakan untuk menghuraikan rentetan kepada pembolehubah jenis int.

Hasil pelaksanaan kod di atas ialah:

Salin kod Kod adalah seperti berikut:

12
3

Nota: Hasil konsol.log pertama ialah 12. Memandangkan a ialah rentetan, b juga ditambah oleh sistem sebagai rentetan Hasilnya ialah kedua-dua rentetan itu dilekatkan dan menjadi 12. Hasil konsol.log kedua ialah 3 kerana kami menukar a pertama kepada jenis int Penambahan dua pembolehubah jenis int ialah hasil tambah nilai sudah tentu 3.

==, ===, !=, !==

Satu perkara yang perlu dijelaskan di sini ialah apabila panjang operator logik ini ialah 2 (==, !=), ia hanya menentukan sama ada nilai luaran adalah sama, tetapi tidak menentukan jenisnya. Seperti

Salin kod Kod adalah seperti berikut:

var a = 1, b = "1";
console.log(a == b);

Hasil yang dikeluarkan adalah benar. Tetapi jika kita menambah tanda sama di tengah-tengah penghakiman, maka ia akan menjadi penghakiman yang ketat Hanya apabila jenis dan nilainya sama, ia akan menjadi benar, jika tidak, ia akan menjadi palsu. Maksudnya

Salin kod Kod adalah seperti berikut:

var a = 1, b = "1";
console.log(a === b);

, hasil yang dikembalikan adalah palsu, kerana a adalah jenis int dan b ialah rentetan.

Mari kita bercakap tentang pernyataan bersyarat, sebenarnya, jika di sini tidak berbeza dengan bahasa lain, ini hanya soal beberapa operator logik, dua tanda sama dan tiga tanda sama. Jadi saya tidak akan menjelaskan secara terperinci.

jenis

Di sini saya akan menganggapnya sebagai pengendali dan bukannya fungsi.

Fungsi operator ini adalah untuk menentukan jenis pembolehubah Ia akan mengembalikan rentetan, iaitu nama jenis Anda boleh mengetahuinya dengan melaksanakan kod berikut:

Salin kod Kod adalah seperti berikut:

fungsi foo() {}
var a = 0;
var b = 'Shh~ Egg Drop Soup sedang tidur. ';
var c = 1.0;
var d = foo;
var e = { "a" : a };
var f = [ 1, 2, 3 ];
var g = null;
var h = tidak ditentukan;
console.log(jenis a);
console.log(jenis b);
console.log(jenis c);
console.log(jenis d);
console.log(jenis e);
console.log(jenis f);
console.log(jenis g);
console.log(jenis h);

Hasil pelaksanaan di sini ialah:

Salin kod Kod adalah seperti berikut:

nombor
rentetan
nombor
fungsi
objek
objek
objek
tidak ditentukan

null, undefined, NaN

Dalam JavaScript, terdapat tiga nilai istimewa, seperti yang ditunjukkan dalam tajuk. Yang pertama mungkin biasa kepada semua orang. Ia juga terdapat dalam C/C, tetapi intipatinya ialah

```C

takrifkan NULL 0

Dalam JavaScript, ketiga-tiga nilai ini mempunyai makna yang berbeza.

### null ###

null ialah sejenis objek istimewa, yang secara kasarnya bermaksud kosong. Contohnya:

var a = null;
Semua orang boleh memahaminya, jadi saya tidak akan menerangkannya terlalu banyak. Tetapi tidak seperti C/C, nol ini tidak sama dengan 0.

### tidak ditentukan ##

Perkara ini bermakna pembolehubah ini tidak diisytiharkan. Untuk membezakan null dengan lebih baik, kod sampel kami adalah seperti berikut:

```javascript

Salin kod Kod adalah seperti berikut:

var a = {
"foo" : null
};
console.log(a["foo"]);
console.log(a["bar"]);

Dalam kod di atas, kami menjadikan nilai a["foo"] kosong, iaitu batal. Dan tiada pengisytiharan tentang ["bar"] sama sekali, ia tidak pun kosong. Semua orang sepatutnya meneka hasil output:

Salin kod Kod adalah seperti berikut:

null
tidak ditentukan

NaN

Ini ialah nilai kosong, nombor istimewa. Nama penuhnya ialah Bukan Nombor. Ia agak pelik. Anda boleh memahaminya sebagai pembolehubah jenis nombor yang tidak dalam bentuk digital atau mempunyai nilai yang salah.

Kebanyakan berlaku apabila ralat operasi berangka titik terapung (seperti pembahagian dengan 0) berlaku malah pengguna sendiri yang membuat pembolehubah sama dengan NaN untuk mengembalikan nilai ralat untuk memberitahu semua orang bahawa operasi fungsi ini mempunyai. tersilap.

Sakit hati

Pernyataan lain yang tinggal adalah serupa dengan bahasa sedia ada lain, seperti putus, suis, teruskan, dsb.

Jenis pembolehubah

Bahagian ini terutamanya bercakap tentang objek JavaScript dan jenis lain akan hampir dilepaskan.

Jenis Asas

Node.js mengandungi hampir jenis asas berikut:

nombor
rentetan
boolean
tatasusunan
Antaranya, tiga jenis pertama boleh diberikan secara langsung, dan tugasan tatasusunan hanyalah tugasan rujukan Jika nilai ditukar dalam pembolehubah baru, nilai pembolehubah lama juga akan berubah :

javascript
var foo = [ 1, 2, 3 ];
var bar = foo;
bar[0] = 3;
console.log(foo);
Hasilnya ialah:

javascript
[ 3, 2, 3 ]
Dalam erti kata lain, jika tatasusunan menyalin tatasusunan baharu, ia tidak boleh menggunakan tugasan langsung, tetapi mesti "salinan dalam".

Perlu bercakap tentang tiga kaedah penciptaan tatasusunan.

Jenis pertama:

javascript

Salin kod Kod adalah seperti berikut:

var dog = new Array();
anjing[0] = "Shh~";
anjing[1] = "Sup Titisan Telur";
anjing[2] = "Tidur";

Jenis kedua:

javascript

Salin kod Kod adalah seperti berikut:

var dog = new Array( "Shh~", "Sup Titisan Telur", "Tidur" );

Jenis keempat:

javascript

Salin kod Kod adalah seperti berikut:

var anjing = [
"Shh~",
"Sup titisan telur",
"Tidur"
];

Saya sendiri lebih suka cara penulisan ketiga iaitu lebih ringkas.

Objek JSON

Di sini saya memisahkan objek JSON dan bukannya mengklasifikasikannya sebagai objek JavaScript Jika anda rasa saya agak mengelirukan, anda boleh melangkau bahagian ini secara langsung.

Perbezaan saya antara objek JSON dan objek JavaScript terletak pada sama ada objek tersebut hanya digunakan untuk menyimpan data, dan bukannya membuat seketika kelas. Malah, intipati JSON ialah Notasi Objek JavaScript.

Untuk mendapatkan maklumat lanjut tentang JSON, sila ensiklopedia sendiri.

Mengisytiharkan objek JSON dalam Node.js adalah sangat mudah:

javascript

Salin kod Kod adalah seperti berikut:

var anjing = {
"pra" : "Shh~",
"sub" : {
"nama" : "Sup Titisan Telur",
"bertindak" : "tidur",
"masa" : 12
},
"suf" : [ "Saya kata", "Tidur", "Tidur sahaja" ]
};

Terdapat dua cara untuk mendapatkan nilai kunci nama kunci tertentu dalam objek JSON Yang pertama ialah menggunakan sambungan titik, dan yang kedua ialah menggunakan kurungan segi empat sama:

javascript

Salin kod Kod adalah seperti berikut:

anjing
.pra;
anjing ["pra"];

Nota: Apabila menggunakan titik di atas, ia diikuti terus oleh kunci dalam JSON Jika anda menganggap kunci sebagai pembolehubah, anda hanya boleh mencubanya dengan anjing[kunci]: Sekarang cuba sendiri, gunakan The for.. .dalam bentuk merentasi objek JSON di atas. Jangan lupa gunakan jenis meow~

Asas kelas (objek)

Tegasnya, kelas Node.js tidak boleh dianggap sebagai kelas Malah, ia hanyalah koleksi fungsi dengan beberapa pembolehubah ahli. Intipatinya sebenarnya adalah fungsi.

Tetapi demi kesederhanaan, kami akan merujuknya sebagai "kelas" dan yang instantiated sebagai "objek" pada masa akan datang dan akan datang.

Oleh kerana kelas mempunyai banyak fungsi, atau intipatinya ialah fungsi, kami mungkin secara tidak sengaja menerangkan asas fungsi di sini.

Pengisytiharan dan instantiasi kelas

Mengisytiharkan kelas adalah sangat mudah, jangan ketawa:

javascript
fungsi foo() {
//...
}
Okay, kami telah menulis kelas foo.

Betul atau palsu? ! sebenar.

Tak percaya? Jika anda tidak percaya, anda boleh menaip sekeping kod dan lihat:

javascript
var bar = new foo();
Tidak kira sama ada ia adalah fungsi, jika ia ditulis dalam bentuk ini (baru), ia adalah instantiasi kelas ini.

Dan apa yang dipanggil foo() ini sebenarnya ialah pembina kelas foo().

Pembolehubah ahli

Terdapat dua cara untuk menggunakan pembolehubah ahli.

Yang pertama ialah menggunakan ini. dalam pembina kelas atau mana-mana pembina. Anda boleh mengisytiharkan pembolehubah ahli pada bila-bila masa, dan ia tidak menjejaskan penggunaannya secara luaran Bagaimanapun, walaupun anda menggunakannya sebelum ia diisytiharkan, akan ada yang tidak ditentukan untuk menyokongnya. Jadi ini kaedah pertama:

Salin kod Kod adalah seperti berikut:

javascript
fungsi foo() {
This.hello = "dunia";
}

Nota: Hanya apabila ini ditambah, ia adalah pembolehubah ahli kelas panggilan, jika tidak ia hanyalah pembolehubah tempatan dalam fungsi. Adalah perlu untuk membezakan skop pembolehubah apabila tiada ini.

Kaedah kedua ialah mengisytiharkannya di luar pembina atau mana-mana fungsi ahli Formatnya ialah .prototaip.:

javascript

Salin kod Kod adalah seperti berikut:

fungsi foo() {
//...
}
foo.prototype.hello = "dunia";

Tidak kira kaedah di atas adalah pengisytiharan pembolehubah ahli, kita dapat melihat kesannya:

javascript

Salin kod Kod adalah seperti berikut:

var bar = new foo();
console.log(bar.hello);

Anda juga boleh mengubah suai kelas ini seperti ini:

javascript

Salin kod Kod adalah seperti berikut:

fungsi foo() {
This.hello = "dunia";
}
foo.prototype.hello = "Sup Titisan Telur";

Kemudian gunakan kod di atas untuk mengeluarkan.

Fikirkan mengapa output masih dunia dan bukannya sup titisan telur.

Pembina

Kami berkata sebelum ini foo() sebenarnya adalah pembina. Jadi jelas sekali kita boleh menghantar parameter kepada pembina, jadi kita mempunyai kod berikut:

javascript

Salin kod Kod adalah seperti berikut:

// Kod 2.1
fungsi foo(hello) {
If(hello === undefined) {
This.hello = "dunia";
} lain {
This.hello = hello;
}
}

Kami melihat penghakiman aneh di atas jika(hello === undefined) Apakah kegunaan penghakiman ini? Kemungkinan pertama ialah pembangun pergi keluar dari caranya untuk lulus tidak ditentukan. Pada masa ini, dapat difahami bahawa ia tidak ditentukan.

Ada keadaan lain. Kami berkata pada mulanya bahawa JavaScript adalah bahasa yang ditaip lemah Malah, ia bukan sahaja ditaip dengan lemah, tetapi lulus parameternya juga sangat longgar. Anda boleh lulus lebih atau kurang (selagi anda boleh memastikan bahawa atur cara tidak membuat ralat atau logik tidak membuat ralat apabila anda lulus lebih atau kurang), pada dasarnya tidak mengapa. Parameter yang diluluskan dalam lebih banyak akan diabaikan secara automatik, manakala parameter yang diluluskan dalam lebih sedikit akan diisi dengan tidak ditentukan.

Lihat kod berikut untuk memahami:

javascript

Salin kod Kod adalah seperti berikut:

// Bersambung daripada kod 2.1
var bar1 = new foo();
var bar2 = new foo("Sup Titisan Telur");

Sila keluarkan pembolehubah helo bagi dua bar itu sendiri, dan anda akan mendapati bahawa satu adalah dunia dan satu lagi ialah sup titisan telur. Jelas sekali, apabila bar1 pertama kami diisytiharkan, Node.js secara automatik melihatnya sebagai:

javascript

Salin kod Kod adalah seperti berikut:

var bar1 = new foo(undefined);

Jadi ada pepatah bahawa ia adalah dunia.

Selain itu, dalam pembina ini, kita melihat bahawa parameter yang diluluskan adalah hello, dan terdapat pembolehubah ahli dalam kelas ini dipanggil this.hello. Walau bagaimanapun, kami telah mengatakan sebelum ini bahawa skop adalah berbeza apabila terdapat ini dan tanpa ini Parameter hanya bertindak dalam pembina, dan satu dengan ini adalah pembolehubah ahli. Menggunakan ini dengan serta-merta membezakan mereka, jadi tidak mengapa walaupun mereka mempunyai nama yang sama.

Fungsi ahli

Pengisytiharan fungsi ahli

Pengisytiharan fungsi ahli adalah serupa dengan kaedah pengisytiharan kedua pembolehubah ahli, iaitu .prototaip. = ;

javascript

Salin kod Kod adalah seperti berikut:

// Bersambung daripada kod 2.1
set fungsiHello(hello) {
this.hello = hello;
}
foo.prototype.setHello = setHello;
bar1.setHello("Egg Pancake");

Kod di atas adalah jelas Kami telah melaksanakan fungsi setHello kelas foo, yang boleh mengubah suai nilai foo.hello.

Tetapi bukankah agak menyusahkan untuk menulis seperti ini? Seterusnya saya akan bercakap tentang ciri penting fungsi JavaScript.

★ Fungsi tanpa nama ★

Banyak kali sesetengah fungsi kami hanya dirujuk atau dipanggil di satu tempat, jadi tidak berbaloi dan tidak perlu untuk kami memberi nama fungsi ini, jadi kami boleh menulis fungsi ini buat sementara waktu dan terus membiarkan orang yang merujuknya Orang petik, orang panggil panggil. Oleh itu, nama fungsi boleh ditinggalkan, seperti:

javascript

Salin kod Kod adalah seperti berikut:

fungsi(hello) {
This.hello = hello;
}

Bagaimana untuk memetik atau menelefon? Jika kelas di atas perlu dirujuk, ia akan ditulis seperti ini:

javascript

Salin kod Kod adalah seperti berikut:

foo.prototype.setHello = function(hello) {
This.hello = hello;
}

Cara penulisan ini mempunyai kesan yang sama seperti pengisytiharan fungsi ahli, dan menjimatkan banyak kod. Dan sebenarnya, pada dasarnya pengisytiharan fungsi ahli kelas diisytiharkan dalam cara fungsi tanpa nama ini.

Bagaimanakah cara membuat fungsi tanpa nama dipanggil? Ini biasanya digunakan apabila menghantar dalam fungsi yang hanya dipanggil oleh fungsi tertentu.

Sebagai contoh, kita mempunyai fungsi yang prototaipnya ialah:

javascript

Salin kod Kod adalah seperti berikut:

/**
* Kami akan lulus dalam dua pembolehubah a dan b,
* Selepas mengira nilai a b, serahkan kepada func(num)
* Pergi ke output
,*/
fungsi sumab(a, b, func) {
var c = a b;
func(a, b, c);
}

Sebagai contoh, kami mempunyai dua versi fungsi keluaran, satu keluaran Cina dan satu lagi keluaran Inggeris, maka jika fungsi tanpa nama tidak digunakan, ia ditulis seperti ini:

javascript

Salin kod Kod adalah seperti berikut:

fungsi zh(a, b, jumlah) {
console.log(nilai " " b " ialah: " sum);
}
fungsi en(a, b, jumlah) {
console.log(a " tambah " b " ialah " jumlah);
}
sumab(1, 2, zh);
sumab(3, 4, en);

Laksanakan kod ini sekali, hasil keluarannya ialah:

Nilai 1 2 ialah: 3
3 tambah 4 ialah 7
Jika kod tersebut adalah dalam bentuk fungsi tanpa nama, ia akan menjadi:

javascript

Salin kod Kod adalah seperti berikut:

sumab(1, 2, fungsi(a, b, jumlah) {
​ console.log(nilai " " b " ialah: " sum);
});
sumab(3, 4, fungsi(a, b, jumlah) {
console.log(a " tambah " b " ialah " jumlah);
});

Borang ini biasanya digunakan untuk fungsi panggil balik. Mekanisme panggil balik adalah intipati Node.js atau JavaScript. Ia akan diperkenalkan dalam bab-bab akan datang.

Kaedah pengisytiharan fungsi tanpa nama bagi pengisytiharan fungsi ahli

Walaupun telah disebut dalam bahagian sebelumnya, mari kita bincangkannya sekali lagi.

Biasanya apabila kami mengisytiharkan fungsi ahli kelas, kami menggunakan fungsi tanpa nama untuk mengisytiharkannya, kerana fungsi itu hanyalah fungsi ahli kelas ini dan tidak akan dirujuk atau dipanggil secara berasingan daripada tempat lain, jadi terdapat perkara berikut Kod:

javascript

Salin kod Kod adalah seperti berikut:

// Bersambung daripada kod 2.1
foo.prototype.setHello = function(hello) {
This.hello = hello;
}

Dengan cara ini, kami menjadikan kelas foo mempunyai fungsi setHello.

2.3.4 Sewenang-wenangnya kelas

Ini karut dari saya lagi. Apa yang dipanggil sewenang-wenangnya kelas bermakna anda boleh mengubah suai kelas anda di mana-mana dalam JavaScript, yang mempunyai persamaan tertentu dengan Ruby.

Sebagai contoh, rentetan sebenarnya ialah kelas, dengan pembolehubah ahli seperti panjang dan fungsi ahli seperti indexOf dan substr. Tetapi sekiranya kami merasakan rentetan ini tidak sempurna di sesetengah tempat dan ingin menambah kaedah kami sendiri, maka kami boleh menambah fungsi padanya di mana anda mahu, seperti:

javascript

Salin kod Kod adalah seperti berikut:

String.prototype.sb = function() {
var newstr = "";
for(var i = 0; i < this.length; i ) {
If(i % 2 === 0) newstr = "s";
else newstr = "b";
}
Kembalikan newstr;
};

Maksud fungsi ini adalah untuk mengisi rentetan supaya menjadi jelmaan sb.

Mari kita uji:

Salin kod Kod adalah seperti berikut:

var str = "Shh~ Sup Titisan Telur sedang tidur.";
console.log(str.sb());

Anda akan mendapat keputusan ini:

sbsbsbsbs
Jika anda memberitahu komputer anda "Shh~ Egg Drop Soup sedang tidur.", komputer anda akan memanggil anda bodoh empat setengah kali. (Hancurkan dengan cepat)

3. Dilampirkan

3.1. Salinan mendalam

Salinan dalam yang dipanggil adalah untuk mencipta tatasusunan baharu atau objek sendiri, dan secara manual menyalin nilai pembolehubah jenis asas​​​dalam tatasusunan sumber atau objek satu demi satu, bukannya hanya mengambil rujukan tatasusunan sumber atau objek. Jadi ini melibatkan panggilan rekursif atau sesuatu.

Berikut ialah fungsi salinan mendalam yang saya laksanakan Anda boleh menulis sendiri dan menambahkannya ke pangkalan pengetahuan Node.js anda sendiri.

javascript

Salin kod Kod adalah seperti berikut:

fungsi cloneObject(src) {
  var dest = {};
  untuk(kunci var dalam src) {
    if(typeof src === "objek") dest[key] = cloneObject(src[key]);
    else dest[key] = src[key];
  }
  kembali destinasi;
}
Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!