PHP Academy · Pelajaran

Mentakrifkan dan Memanggil Fungsi

Cipta fungsi anda sendiri dengan parameter dan nilai pulangan.

Pelajaran 1 daripada 413 langkah

Mentakrifkan dan Memanggil Fungsi ialah pelajaran PHP Academy percuma di CoddyKit. Ini ialah pelajaran 1 daripada 4. Anda boleh membaca keseluruhan pelajaran di bawah secara percuma — kemudian berlatih secara praktikal dalam pelayar menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran PHP Academy, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus PHP Academy merangkumi sejumlah 4 pelajaran.

Mengapa Fungsi?

Fungsi membolehkan Anda membungkus logik yang boleh digunakan semula dan memberikannya nama supaya Anda boleh memanggilnya berkali-kali tanpa mengulangi kod. Faedahnya:

  • Elakkan pengulangan (prinsip DRY)
  • Ujian dan penyahpepijatan yang lebih mudah
  • Kod yang menerangkan dirinya sendiri

Mentakrifkan Fungsi

Gunakan kata kunci function, nama, parameter pilihan dan badan:

<?php
function greet(string $name): string {
    return 'Hello, ' . $name . '!';
}

echo greet('Alice'); // Hello, Alice!

Parameter dan Argumen

Parameter ialah nama pemboleh ubah dalam takrifan; argumen ialah nilai sebenar yang dihantar apabila fungsi dipanggil:

<?php
function add(int $a, int $b): int {
    return $a + $b;  // $a and $b are parameters
}

$sum = add(3, 4);  // 3 and 4 are arguments
echo $sum;  // 7

Nilai Pulangan

Gunakan return untuk menghantar nilai kembali kepada pemanggil. Fungsi tanpa return mengembalikan NULL:

<?php
function square(float $n): float {
    return $n * $n;
}

function logMessage(string $msg): void {
    echo '[LOG] ' . $msg . PHP_EOL;
    // void functions must not return a value
}

echo square(4);        // 16
logMessage('started'); // [LOG] started

Penghantaran mengikut Nilai berbanding Rujukan

Secara lalai, PHP menghantar argumen mengikut nilai (salinan). Letakkan & di hadapan untuk menghantar mengikut rujukan:

<?php
function doubleByValue(int $n): void {
    $n *= 2;  // changes only the local copy
}

function doubleByRef(int &$n): void {
    $n *= 2;  // changes the original
}

$x = 5;
doubleByValue($x);
echo $x; // 5 — unchanged

doubleByRef($x);
echo $x; // 10 — changed

Beberapa Titik Pulangan

Satu fungsi boleh mempunyai beberapa pernyataan return untuk keluar lebih awal:

<?php
function divide(float $a, float $b): ?float {
    if ($b === 0.0) {
        return null;  // early return on error
    }
    return $a / $b;
}

var_dump(divide(10, 0));   // NULL
echo divide(10, 2);         // 5

Pengangkatan Fungsi

Fungsi PHP tersedia di seluruh fail tanpa mengira tempat takrifannya — berbeza daripada JavaScript, kebanyakan fungsi PHP NOT perlu ditakrifkan sebelum digunakan:

<?php
echo double(5);  // 10 — works even though double is defined below

function double(int $n): int {
    return $n * 2;
}

// Exception: functions inside conditionals ARE position-sensitive

Fungsi Rekursif

Fungsi yang memanggil dirinya sendiri adalah rekursif. Sentiasa pastikan terdapat kes asas untuk mengelakkan rekursi tanpa penghujung:

<?php
function factorial(int $n): int {
    if ($n <= 1) return 1;  // base case
    return $n * factorial($n - 1);  // recursive call
}

echo factorial(5);  // 120

Pengisytiharan Jenis

PHP 7+ menyokong petunjuk jenis untuk parameter dan nilai pulangan. PHP 8 menambah jenis mixed, never dan persilangan:

<?php
declare(strict_types=1);

function clamp(int $value, int $min, int $max): int {
    return max($min, min($max, $value));
}

echo clamp(150, 0, 100);  // 100
echo clamp(-5,  0, 100);  // 0
echo clamp(42,  0, 100);  // 42

Fungsi Dinamakan berbanding Fungsi Terbina Dalam

PHP disertakan dengan beribu-ribu fungsi terbina dalam. Anda boleh menyemak pada masa jalan sama ada sesuatu fungsi wujud:

<?php
if (function_exists('mb_strlen')) {
    echo mb_strlen('こんにちは');  // 5 — correct multi-byte length
} else {
    echo strlen('こんにちは');      // 15 — byte count, wrong for UTF-8
}

Mengembalikan Beberapa Nilai

Kembalikan beberapa nilai dengan mengembalikan tatasusunan dan menyahstrukturnya di tempat panggilan:

<?php
function minMax(array $arr): array {
    return [min($arr), max($arr)];
}

[$min, $max] = minMax([3, 1, 7, 2, 9]);
echo "Min: $min, Max: $max";  // Min: 1, Max: 9

Semakan Pantas

Apakah yang dikembalikan oleh fungsi PHP tanpa pernyataan return yang jelas?

Imbas Kembali: Fungsi

Asas fungsi PHP:

  • Takrifkan dengan function name(params): returnType
  • Hantar mengikut nilai (lalai) atau mengikut rujukan dengan &
  • Fungsi tanpa return mengembalikan NULL
  • Rekursi memerlukan kes asas
  • Fungsi tersedia di seluruh fail (pengangkatan)

Seterusnya: parameter lalai dan variadik.

Percuma untuk bermula

Pelajari PHP dengan tutor kecerdasan buatan — percuma

Tulis dan jalankan kod sebenar dalam pelayar anda, dapatkan bantuan segera daripada tutor kecerdasan buatan yang tersedia 24/7, dan sambung semula dari tempat anda berhenti di web atau dalam aplikasi.

Kursus
49
Pelajaran
195

Soalan Lazim

Adakah pelajaran “Mentakrifkan dan Memanggil Fungsi” percuma?

Ya — teks penuh “Mentakrifkan dan Memanggil Fungsi” boleh dibaca secara percuma di web ini. Untuk berlatih secara interaktif menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7, serta membuka kunci baki kursus PHP Academy, tingkat taraf kepada CoddyKit PRO. Kursus PHP Academy merangkumi sejumlah 4 pelajaran.

Apakah yang akan saya pelajari dalam “Mentakrifkan dan Memanggil Fungsi”?

Cipta fungsi anda sendiri dengan parameter dan nilai pulangan. Anda berlatih PHP Academy menggunakan kod praktikal yang dijalankan terus dalam pelayar, manakala tutor kecerdasan buatan 24/7 menjawab soalan anda semasa anda mengikuti pelajaran.

Adakah saya memerlukan pengalaman untuk memulakan PHP Academy?

Tiada pengalaman terdahulu diperlukan. Pembelajaran PHP Academy di CoddyKit disusun untuk pelajar daripada peringkat pemula hingga lanjutan, jadi anda boleh bermula di sini atau dari awal dan belajar mengikut kadar anda sendiri. Ini ialah pelajaran 1 daripada 4.

Berapa lamakah pelajaran “Mentakrifkan dan Memanggil Fungsi” diambil?

Kebanyakan pelajaran CoddyKit mengambil masa kira-kira 5–10 minit. Setiap pelajaran ringkas dan interaktif, jadi anda boleh membuat kemajuan secara berterusan dan menyambung tepat dari tempat anda berhenti di web atau aplikasi.

Bolehkah saya menulis dan menjalankan kod dalam pelajaran PHP Academy ini?

Ya. Setiap pelajaran PHP Academy menyertakan penyunting kod terbina dalam, jadi anda boleh menulis dan menjalankan kod sebenar terus dalam pelayar serta menerima maklum balas kecerdasan buatan serta-merta — tanpa memerlukan persediaan setempat.

Semua pelajaran dalam kursus ini

  1. Mentakrifkan dan Memanggil Fungsi
  2. Parameter Lalai dan Variadik
  3. Skop Pemboleh Ubah: Tempatan dan Global
  4. Fungsi Tanpa Nama dan Closure
← Kembali ke PHP Academy