TOC

This article has been localized into Mongolian by the community.

Үндсэн PHP:

Функцүүд

Бусад програмчлалын хэлүүд болоод мөн PHP - ийн функц нь багцалсан кодын хэсэг бөгөөд , түүнийг кодынхоо бусад аль ч хэсгээс дуудах боломжтой байдаг. Энэ нь кодыг дахин дахин бичихгүйгээр програмынхаа өөр өөр хэсэгт дахин ашиглаж болно гэсэн үг. PHP-ийн энгийн нэгэн функцын жишээ энд байна:

<?php
function SayHello($to)
{
    echo "Hello, ".$to;
}
?>

Функц нь үргэлж function түлхүүр үгээр эхлэх ба дагалдаад функцын нэрийг зарлах буюу бичнэ . Энэ тохиолдолд бид функцээ SayHello гэж зарлалаа. Үүний араас хаалтанд функцын гүйцэтгэх параметрүүдийг тодорхойлон оруулна . Параметр шаардагдахгүй бол SayHello () гэсэн шиг хоосон хаалт байж болно. Энэ функцэд бид $to гэсэн параметрийг тодорхойлон оруулж байна. PHP д параметрийн төрлийг оруулах шаардлагагүй бөгөөд функцийнхээ тусламжтайгаар ямар ч төрлийн өгөгдлийн хэлбэрийг оруулж болно. Функцын агуулгыг угалзан хаалтуудын хооронд бичнэ, энэ тохиолдолд бид $to параметрийн гүйцэтгэлийг хэвлэн харуулах echo илэрхийллийг ашиглаж байна.

Бид функцийг нэр болон шаардлагатай багц өгөгдлүүдийг нь бичин оруулж ашигладаг Ж-нь:

<?php
function SayHello($to)
{
    echo "Hello, ".$to;
}

SayHello("World");
?>

Функцүүд өгөгдөлийн утгыг буцаан гаргаж болдог. Эхний жишээн дээр бид үүнийг хийх шаардлагагүй байсан гэхдээ энэ нь боломжтой бөгөөд маш ашигтай юм. Хэрэв та бусад програмчлалын хэлийг ашиглаж байсан бол функц ямар нэгэн өгөгдлийг буцаах ёстой юу үгүй юу, тийм бол ямар өгөгдөлийн ямар төрөл зарлахаа тодорхойлдог шүү дээ . Харин PHP-д үүнийг ашиглах шаардлагагүй байдаг. Функцээ өөрчлөөд шаардлагатай текстээр хэвлэхийн оронд текстийг буцаан харуулахаар өөрчилье.

<?php
function SayHello($to)
{
    return "Hello, ".$to;
}

echo SayHello("World");
?>

Таны харж байгаачлан бидэнд зүгээр л мөрийг хэвлэхийн оронд буцаан харуулах функц байна, тэгээд функцийг дуудахад бодит гаралт хийгддэг. Энэ нь иймэрхүү байдлаар хийгддэг, учир нь мөрнөөс шууд хэвлэх нь баримт бичгийн аль хэсэгт оруулах файлыг хавсаргах эсэхийг шаарддаг.

Функцүүдийн нэгэн чухал тал бол хамрах хүрээ юм. Функцийг оруулсны дараа та шинэ хамрах хүрээг оруулах бөгөөд функц болон классууд нь нь автоматаар хамрах хүрээ нь глобал байх боловч хувьсагчууд нь тийм биш байдаг. Энэ нь функцийн гадна зарлагдсан хувьсагч дотор нь автоматаар орохгүй гэсэн үг юм. Үүнийг үзэхийн тулд доорх жишээг туршиж үзээрэй.

<?php
$var = "test";

function SayHello()
{
    return "Current value of var: ".$var;
}

echo SayHello();
echo "<br /><br />";
echo "Current value of var: ".$var;
?>

Үүний үр дүнд эхний гаралт нь $var гэсэн хувьсагчийг агуулаагүй байх болно, учир нь үүнийг функцэд тодорхойлоогүй. Та үүнийг функц дотор зарлаж, түүнд утга өгч болох боловч энэ нь функцээс гадуур тусгагдахгүй. Гэхдээ функц дотороос гаднах хувьсагчуудад нэвтрэх боломжтой байдаг.Үүнийг та функцын хүрээнд глобал хэлбэрээр зарлах хэрэгтэй, үүн шиг:

<?php
$var = "test";
function SayHello()
{
    global $var;
    return "Current value of var: ".$var;
}
?>

Функцийг зарлахдаа та нэг эсвэл хэд хэдэн параметрээс сонгон тодорхойлж болно. Үүнийг хувьсагч зарлахдаа анхдагч утгаар нь байлгах замаар хийдэг. Нэгээс илүү параметр буюу зөвхөн сүүлчийн X тооны параметрууд заавал биш байж болно. Харин шаардлагатай параметрийн дараа сонголт байж болохгүй. Дараагийн жишээнд бид танд хэд хэдэн нэмэлт параметрийг тодорхойлж, хэрхэн яаж хийснийг харуулах болно.

<?php
function GreetCoder($name, $msg = "Hello, coder!")
{
    echo "A message to " . $name . ": " . $msg;
}

GreetCoder("John Doe");
echo "<br /><br />";
GreetCoder("John Doe", "This is a custom message!");
?>

Таны харж байгаагаар бид функцийг зөвхөн нэг параметрээр эсвэл хоёрулангаар нь дуудаж болно. Гаралт нь бидний хийх зүйлд нөлөөлдөг, гэхдээ юу ч байсан хамаагүй $msg нь утга агуулж байна. Энэ нь олон тохиолдолд ашиглагдах боломжтой бөгөөд та PHP дээр бичих тусам улам туршлагажих болно.

This article has been fully translated into the following languages: Is your preferred language not on the list? Click here to help us translate this article into your language!