Bloglar | Sayt yaratish bo'yicha | phpda maxsus funksiyalar
Har qanday dasturlash tilida subroutines mavjud.C da ular vazifalar deb ataladi, assembler - subroutinesda, va Paskalda ikkita subroutin mavjud: protseduralar va funktsiyalar.
Subroutin dasturning istalgan joyidan foydalanish mumkin bo'lgan maxsus mo'ljallangan dastur fragmentidir.Subroutines dasturchilarning hayotini sezilarli darajada soddalashtirib, manba kodining okunabilirliğini yaxshilaydi, shuningdek, uni qisqartiradi, chunki alohida kod bo'laklari bir necha marta yozilishi shart emas.
PHP-da, bu subroutines mavjudmaxsus vazifalar.
PHP funktsiyalarining funktsiyalari
PHP-da foydalanuvchi belgilaydigan funksiyalarning xususiyatlarini keltiramiz:
*.Standart sozlamalar mavjud.Xuddi shu funktsiyani o'zgaruvchan parametrlar bilan chaqirish mumkin;
*.Foydalanuvchining belgilangan funktsiyalar har qanday turdagi ma'lumotlarni qaytarishi mumkin;
*.Funksiya ichidagi o'zgaruvchilar doirasi ierarxik (daraxtga o'xshash);
*.Argumentlar sifatida qabul qilingan parametrlarni o'zgartirish mumkin.
Maxsus funksiyalardan foydalanganda savol tug'iladi.doirasio'zgaruvchilar.
Maydondagi o'zgaruvchilar taqsimlanadiglobalvamahalliy.
Global o'zgaruvchilar subprogramlar (funktsiyalar), shu jumladan, butun dastur uchun mavjud bo'lgan o'zgaruvchilardir.
Lokal o'zgaruvchilar subroutin (funktsiya) ichida aniqlangan o'zgaruvchilardir.Ular faqat ular aniqlangan vazifada mavjud.
PHP uchun funktsiyada e'lon qilingan va ishlatilgan barcha parametrlarga sukut bo'yicha funksiya mahalliy bo'ladi.Boshqacha aytganda, sukut bo'yicha funktsiya tanasida umumiy o'zgaruvchining qiymatini o'zgartirish mumkin emas.
Agar foydalanuvchi o'zgaruvchining nomi (foydalanuvchi tomonidan belgilangan funktsiyadan tashqari) foydalanuvchi identifikatori funktsiyasida nom bilan o'zgaruvchi foydalansangiz, bu mahalliy o'zgaruvchi global o'zgaruvchiga hech qanday aloqasi yo'q.Keling, buni aniq bir misol bilan tushuntirib beraman:


<?php

$a
=100;

functionfunct(){

$a=70;

echo
"<h4>$a</h4>";

}

funct();

echo
"<h2>$a</h2>";

?>




Buyruq fayli birinchi 70, keyin 100:
70
100
KamMahalliy va global o'zgaruvchilardan tashqari, PHP o'zgaruvchining yana bir turiga ega:statik o'zgaruvchilar.
Agar foydalanuvchi funktsiyasi funktsiyasida statik o'zgaruvchi e'lon qilingan bo'lsa, funksiya tugagandan so'ng derleyici uni o'chirmaydi.Statik o'zgaruvchilar o'z ichiga olgan foydalanuvchi tomonidan belgilangan funktsiyaning misoli:

<?php

functionfunct
()

{

static
$a;

$a++;

echo
"$a";

}

for(
$i=0;$i++<10;)funct();

?>



Ushbu skript satrni yozadi:
1 2 3 4 5 6 7 8 9 10
Statik ifodani o'chirib tashlasak, quyidagi qator ko'rsatiladi:
1 1 1 1 1 1 1 1 1 1
Buning sababi shundaki,$ ao'zgaruvchisi funktsiya tugagandan so'ng o'chiriladi va uni har safar chaqirilganda tiklanadi.$ Ao'zgaruvchisi nolga tenglashtirilgandan so'ng darhol oshiriladi va faqatgina u chiqadi.
Maxsus funktsiyalar yaratish
Foydalanuvchi tomonidan belgilangan funktsiya dasturning biron bir qismida (script), birinchi foydalanish joyiga e'lon qilinishi mumkin.Va oldindan xabardor bo'lishga hojat yo'q.
Funksiyalarni e'lon qilish sintaksisi quyidagicha:
function Имя (аргумент1[=значение1],...,аргумент1[=значение1])
{
тело_функции
}
Funktsiya deklaratsiyasifunktsiya funktsiyasibilan boshlanadi, so'ngra funktsiya nomi, so'ngra funktsiya nomi, parentezdagi dalillar ro'yxati.Funktsiyaning tanasi brauzerlarda joylashtirilgan va operatorlarning har qanday sonini o'z ichiga olishi mumkin.
Funktsiya nomlari uchun talablar:
*.Funktsiyalar nomlari rus tilida bo'lishi mumkin, lekin rus harflaridan iborat nomlar vazifalarni bajarish uchun tavsiya etilmaydi;
*.Funktsiya nomlari bo'shliqlarni o'z ichiga olmaydi;
*.Har bir maxsus funktsiyaning nomi noyob bo'lishi kerak.Bunday holda, funktsiyalarni e'lon qilish va ularga kirishda reestrni hisobga olishni esdan chiqarmaslik kerak.Masalan, funct () va FUNCT () funktsiyalari bir xil nomlarga ega;
*.Vazifalarga nomlarning boshida $ belgisi bo'lmasa o'zgaruvchilar kabi bir xil nomlar berilishi mumkin.
Ma'lumotlar
Yaratilgan vaqt: 14 Aug 2018, 17:14
Muallif: @Ashurov (54)
Raxmat aytishgan: 0 kishi
Fikrlar: 0 ta
Ko'rilgan: 13 marta
Shikoyatim bor
Blog bilan bo'lishish
Яндекс.Метрика UzMasterS.Ru