PHP
adalah server-side scripting language yang dirancang untuk pengembangan web
tetapi juga digunakan sebagai bahasa pemrograman untuk tujuan umum . PHP
sekarang terinstal pada lebih dari 244 juta website dan 2,1 juta server web . Awalnya
dibuat oleh Rasmus Lerdorf pada tahun 1995, implementasi referensi dari PHP
sekarang diproduksi oleh Grup PHP. Sementara PHP awalnya berdiri untuk Personal
Home Page, sekarang singkatan dari PHP: Hypertext Preprocessor, sebuah akronim
rekursif .
Kode
PHP ditafsirkan oleh server web dengan modul PHP prosesor, yang menghasilkan
halaman web yang dihasilkan: perintah PHP dapat ditanamkan langsung ke dalam
HTML dokumen sumber daripada memanggil file eksternal untuk memproses data. Hal
ini juga berkembang untuk menyertakan antarmuka baris perintah kemampuan dan
dapat digunakan dalam standalone aplikasi grafis .
PHP
adalah perangkat lunak bebas yang dirilis di bawah Lisensi PHP , yang tidak
sesuai dengan GNU General Public License (GPL) karena pembatasan pada penggunaan
jangka PHP. PHP dapat digunakan pada kebanyakan server web dan juga sebagai
standalone shell pada hampir setiap sistem operasi dan platform yang , secara
gratis
Jenis data
Toko
PHP bilangan bulat dalam rentang tergantung platform, baik 64-bit atau 32-bit
ditandatangani bilangan bulat setara dengan C-bahasa tipe lama . Unsigned
integer diubah menjadi nilai ditandatangani dalam situasi tertentu,. Perilaku
ini berbeda dari bahasa pemrograman lain variabel Integer dapat diberikan
dengan menggunakan desimal (positif dan negatif), oktal , heksadesimal , dan
biner notasi. Floating point nomor juga disimpan dalam berbagai
platform-spesifik. Mereka dapat ditentukan dengan menggunakan notasi floating
point, atau dua bentuk notasi ilmiah . PHP memiliki native Boolean tipe yang
mirip dengan jenis Boolean asli di Jawa dan C + + . Menggunakan tipe Boolean
aturan konversi, nilai-nilai non-nol ditafsirkan sebagai benar dan nol sebagai
palsu, seperti di Perl dan C + +. Tipe data nol merupakan variabel yang tidak
memiliki nilai. Satu-satunya nilai dalam tipe data nol adalah NULL. Variabel dari
"sumber daya" type merupakan referensi ke sumber daya dari sumber
eksternal. Ini biasanya dibuat oleh fungsi dari ekstensi tertentu, dan hanya
dapat diproses oleh fungsi dari ekstensi yang sama; contoh termasuk sumber daya
berkas, gambar, dan basis data. Array
dapat mengandung unsur-unsur dari jenis apa pun yang PHP dapat menangani,
termasuk sumber daya , benda, dan bahkan array lainnya. Order diawetkan dalam
daftar nilai dan hash dengan kedua kunci dan nilai, dan kedua dapat bercampur. PHP juga mendukung string , yang dapat
digunakan dengan tanda kutip tunggal, tanda kutip ganda, nowdoc atau heredoc
sintaks. Standard PHP Library (SPL) mencoba untuk memecahkan masalah standar dan mengimplementasikan
antarmuka akses data yang efisien dan kelas.
Fungsi
PHP
memiliki ratusan fungsi dasar dan ribuan lainnya melalui ekstensi.
Fungsi-fungsi ini didokumentasikan dengan baik di situs PHP, namun, built-in
perpustakaan memiliki berbagai konvensi penamaan dan inkonsistensi. PHP saat
ini tidak memiliki fungsi untuk benang pemrograman, meskipun tidak mendukung
pemrograman multi-proses pada POSIX sistem.
Fungsi
tambahan dapat didefinisikan oleh pengembang:
function myFunction () / / mendefinisikan fungsi, yang satu ini bernama "myFunction"
{
kembali 'John Doe'; / / mengembalikan nilai 'John Doe'
}
gema 'My name is'. myFunction (). '!'; / / output teks concatenated dengan nilai kembali dari myFunction.
/ / MyFunction () disebut sebagai hasil dari sintaks ini.
/ / Hasil output akan 'My name is John Doe!'
Dalam
PHP 5.2 dan sebelumnya, fungsi yang tidak fungsi kelas-pertama dan hanya dapat
direferensikan oleh nama mereka, baik secara langsung maupun secara dinamis
oleh variabel yang berisi nama fungsi. User-didefinisikan fungsi dapat
dibuat kapan saja tanpa prototyped . Fungsi dapat didefinisikan dalam blok
kode, memungkinkan keputusan run-time , apakah atau tidak fungsi harus
didefinisikan. Fungsi panggilan harus menggunakan tanda kurung, dengan pengecualian
dari nol kelas argumen konstruktor fungsi disebut dengan PHP new operator, di
mana kurung adalah opsional. PHP mendukung quasi- fungsi anonim melalui
create_function() fungsi, meskipun mereka tidak fungsi anonim benar karena
fungsi anonim tak bernama, tapi fungsi hanya dapat direferensikan oleh nama,
atau tidak langsung melalui variabel $function_name(); ., di PHP [ 54]
PHP
memperoleh dukungan untuk penutupan di PHP 5.3. Dengan begitu, benar fungsi
anonim yang didukung menggunakan sintaks dari contoh berikut:
fungsi getAdder ($ x)
{
kembali fungsi ($ y) menggunakan ($ x)
{
return $ x + $ y;
};
}
$ Penambah = getAdder (8);
echo $ adder (2); / / prints "10"
Di sini, getAdder() function
menciptakan penutupan menggunakan argumen yang dilewatkan $x (kata kunci use
mengimpor variabel dari konteks leksikal), yang membawa argumen tambahan $y ,
dan mengembalikan penutupan diciptakan untuk pemanggil. Fungsi seperti adalah
objek kelas, artinya dapat disimpan dalam variabel, lulus sebagai parameter
untuk fungsi lain, dll Untuk lebih jelasnya, lihat fungsi Lambda dan penutupan
RFC .
The
goto pernyataan kontrol aliran digunakan seperti dalam contoh berikut:
kunci function ()
{
$ File = fopen ('file.txt', 'r +');
coba lagi:
if (flock ($ file, LOCK_EX |! LOCK_NB))
goto coba lagi;
fwrite ($ file, 'Sukses!');
fclose ($ file);
Ketika
flock() disebut, PHP membuka file dan mencoba untuk menguncinya. Target label
retry: mendefinisikan titik mana eksekusi harus kembali jika flock() tidak
berhasil dan goto retry; disebut. The goto Pernyataan dibatasi dan mensyaratkan
bahwa label sasaran berada di file yang sama dan konteks.
Implementasi
Bahasa
PHP awalnya diimplementasikan sebagai interpreter , dan ini masih merupakan
implementasi yang paling populer. Beberapa compiler telah dikembangkan yang
memisahkan bahasa PHP dari penerjemah. Keuntungan dari kompilasi termasuk
kecepatan yang lebih baik eksekusi, analisis statis, dan meningkatkan interoperabilitas dengan kode yang ditulis dalam bahasa lain.
Kompiler
PHP catatan termasuk Phalanger , yang mengkompilasi PHP ke Common Intermediate
Bahasa (CIL) bytecode, dan HipHop , dikembangkan di Facebook dan sekarang
tersedia sebagai open source, yang mengubah PHP Script ke C + + , kemudian
mengkompilasi, mengurangi beban server hingga 50 %.
PHP
source code yang dikompilasi on-the-fly ke format internal yang dapat dieksekusi
oleh mesin PHP. Dalam rangka untuk
mempercepat waktu pelaksanaan dan tidak perlu melakukan kompilasi kode sumber
PHP setiap kali halaman web diakses, script PHP juga dapat digunakan dalam
format executable menggunakan compiler PHP.
Pengoptimalan
kode bertujuan untuk meningkatkan kinerja dari kode dikompilasi dengan
mengurangi ukurannya, penggabungan instruksi berlebihan dan membuat perubahan
lain yang dapat mengurangi waktu eksekusi. Dengan PHP, sering ada peluang untuk
optimasi kode . Sebuah contoh dari
optimasi kode adalah eAccelerator ekstensi PHP.
Pendekatan
lain untuk mengurangi kompilasi overhead untuk server PHP adalah menggunakan
opcode cache . Cache opcode bekerja dengan caching bentuk dikompilasi dari
script PHP ( opcode ) dalam memori bersama untuk menghindari overhead parsing
dan kompilasi kode setiap kali script berjalan. Cache opcode, Zend Opcache ,
dibangun ke PHP sejak versi 5.5. Contoh lain dari opcode cache yang banyak
digunakan adalah Alternative PHP Cache (APC), yang tersedia sebagai PECL
ekstensi.
Perizinan
PHP
adalah perangkat lunak bebas yang dirilis di bawah Lisensi PHP , yang
menyatakan bahwa:
Produk
yang berasal dari perangkat lunak ini tidak dapat disebut "PHP", atau
mungkin "PHP" muncul dalam nama mereka, tanpa izin tertulis dari
group@php.net. Anda mungkin menunjukkan bahwa perangkat lunak Anda bekerja sama
dengan PHP dengan mengatakan " Foo for PHP "bukannya
menyebutnya" PHP Foo "atau" phpfoo ".
Pembatasan
ini pada penggunaan nama PHP membuatnya tidak kompatibel dengan GNU General
Public License (GPL).
Tidak ada komentar:
Posting Komentar