Lulus variabel untuk meminta php

This post is with regards to handling forms that have more than one submit button.

Suppose we have an HTML form with a submit button specified like this:

Normally the 'value' attribute of the HTML 'input' tag (in this case "Delete") that creates the submit button can be accessed in PHP after post like this:

$_POST['action_button'];
?>

We of course use the 'name' of the button as an index into the $_POST array.

This works fine, except when we want to pass more information with the click of this particular button.

Imagine a scenario where you're dealing with user management in some administrative interface.  You are presented with a list of user names queried from a database and wish to add a "Delete" and "Modify" button next to each of the names in the list.  Naturally the 'value' of our buttons in the HTML form that we want to display will be "Delete" and "Modify" since that's what we want to appear on the buttons' faceplates.

Both buttons (Modify and Delete) will be named "action_button" since that's what we want to index the $_POST array with.  In other words, the 'name' of the buttons along cannot carry any uniquely identifying information if we want to process them systematically after submit. Since these buttons will exist for every user in the list, we need some further way to distinguish them, so that we know for which user one of the buttons has been pressed.

Using arrays is the way to go.  Assuming that we know the unique numerical identifier of each user, such as their primary key from the database, and we DON'T wish to protect that number from the public, we can make the 'action_button' into an array and use the user's unique numerical identifier as a key in this array.

Suppose we have an HTML form with a submit button specified like this:_0

Suppose we have an HTML form with a submit button specified like this:_1

Suppose we have an HTML form with a submit button specified like this:_2

Suppose we have an HTML form with a submit button specified like this:_3

Suppose we have an HTML form with a submit button specified like this:_4

Suppose we have an HTML form with a submit button specified like this:_5

Suppose we have an HTML form with a submit button specified like this:_6

Suppose we have an HTML form with a submit button specified like this:_7

Informasi dapat diteruskan ke fungsi melalui daftar argumen, yang merupakan daftar ekspresi yang dibatasi koma. Argumen dievaluasi dari kiri ke kanan, sebelum fungsi benar-benar dipanggil (evaluasi bersemangat)

PHP mendukung lewat argumen dengan nilai (default), , dan. dan juga didukung

Contoh #1 Melewati array ke fungsi

function takes_array($input)
{
echo "$input[0] + $input[1] = ", $input[0]+$input[1];
}
?>

Mulai dari PHP 8. 0. 0, daftar argumen fungsi dapat menyertakan tanda koma, yang akan diabaikan. Itu sangat berguna dalam kasus di mana daftar argumen panjang atau berisi nama variabel yang panjang, membuatnya mudah untuk membuat daftar argumen secara vertikal

Contoh #2 Daftar Argumen Fungsi dengan koma di belakang

function takes_many_args(
$first_arg,
$second_arg,
$a_very_long_argument_name,
$arg_with_default = 5,
$again = 'a default string', // This trailing comma was not permitted before 8.0.0.
)
{
// ...
}
?>

Melewati argumen dengan referensi

Secara default, argumen fungsi diteruskan dengan nilai (sehingga jika nilai argumen di dalam fungsi diubah, nilai itu tidak berubah di luar fungsi). Untuk mengizinkan fungsi memodifikasi argumennya, mereka harus diteruskan dengan referensi

Agar argumen ke suatu fungsi selalu diteruskan dengan referensi, tambahkan ampersand (&) ke nama argumen dalam definisi fungsi

Contoh #3 Melewati parameter fungsi dengan referensi

function add_some_extra(&$string)
{
$string .= 'and something extra.';
}
$str = 'This is a string, ';
add_some_extra($str);
echo $str; // outputs 'This is a string, and something extra.'
?>

Merupakan kesalahan untuk memberikan nilai sebagai argumen yang seharusnya diteruskan dengan referensi

Nilai argumen default

Suatu fungsi dapat menentukan nilai default untuk argumen menggunakan sintaks yang mirip dengan menugaskan variabel. Standarnya hanya digunakan bila parameter tidak ditentukan;

Contoh #4 Penggunaan parameter default dalam fungsi

function makecoffee($type = "cappuccino")
{
return "Making a cup of $type.\n";
}
echo makecoffee();
echo makecoffee(null);
echo makecoffee("espresso");
?>

Contoh di atas akan ditampilkan

Making a cup of cappuccino.
Making a cup of .
Making a cup of espresso.

Nilai parameter default dapat berupa nilai skalar, array, tipe khusus null, dan pada PHP 8. 1. 0, objek menggunakan sintaks

Contoh #5 Menggunakan tipe non-skalar sebagai nilai default

Fatal error: Uncaught ArgumentCountError: Too few arguments
 to function makeyogurt(), 1 passed in example.php on line 42
_1

Contoh #6 Menggunakan objek sebagai nilai default (mulai dari PHP 8. 1. 0)

Fatal error: Uncaught ArgumentCountError: Too few arguments
 to function makeyogurt(), 1 passed in example.php on line 42
_2

Nilai default harus berupa ekspresi konstanta, bukan (misalnya) variabel, anggota kelas, atau pemanggilan fungsi

Perhatikan bahwa argumen opsional apa pun harus ditentukan setelah argumen apa pun yang diperlukan, jika tidak, argumen tersebut tidak dapat dihilangkan dari panggilan. Perhatikan contoh berikut

Contoh #7 Penggunaan argumen fungsi default yang salah

Fatal error: Uncaught ArgumentCountError: Too few arguments
 to function makeyogurt(), 1 passed in example.php on line 42
_3

Fatal error: Uncaught ArgumentCountError: Too few arguments
 to function makeyogurt(), 1 passed in example.php on line 42
_4

Contoh di atas akan ditampilkan

Fatal error: Uncaught ArgumentCountError: Too few arguments
 to function makeyogurt(), 1 passed in example.php on line 42
_

Sekarang, bandingkan di atas dengan ini

Contoh #8 Penggunaan argumen fungsi default yang benar

Fatal error: Uncaught ArgumentCountError: Too few arguments
 to function makeyogurt(), 1 passed in example.php on line 42
_5

Fatal error: Uncaught ArgumentCountError: Too few arguments
 to function makeyogurt(), 1 passed in example.php on line 42
_6

Contoh di atas akan ditampilkan

Making a bowl of raspberry yogurt.
_

Mulai dari PHP 8. 0. 0, dapat digunakan untuk melewatkan beberapa parameter opsional

Contoh #9 Penggunaan argumen fungsi default yang benar

Fatal error: Uncaught ArgumentCountError: Too few arguments
 to function makeyogurt(), 1 passed in example.php on line 42
_7

Fatal error: Uncaught ArgumentCountError: Too few arguments
 to function makeyogurt(), 1 passed in example.php on line 42
_8

Contoh di atas akan ditampilkan

Making a bowl of raspberry natural yogurt.

Mulai dari PHP 8. 0. 0, mendeklarasikan argumen wajib setelah argumen opsional tidak digunakan lagi. Ini umumnya dapat diatasi dengan membuang nilai default, karena tidak akan pernah digunakan. Satu pengecualian untuk aturan ini adalah argumen dalam bentuk

Fatal error: Uncaught ArgumentCountError: Too few arguments
 to function makeyogurt(), 1 passed in example.php on line 42
9, di mana null default membuat tipe tersebut secara implisit dapat dibatalkan. Penggunaan ini tetap diperbolehkan, meskipun disarankan untuk menggunakan yang eksplisit

Contoh #10 Mendeklarasikan argumen opsional setelah argumen wajib

Making a bowl of raspberry yogurt.
_1

Making a bowl of raspberry yogurt.
_2

Catatan. Mulai dari PHP7. 1. 0, menghilangkan parameter yang tidak menentukan default akan memunculkan ArgumentCountError;

Catatan. Argumen yang diteruskan oleh referensi mungkin memiliki nilai default

Daftar argumen dengan panjang variabel

PHP memiliki dukungan untuk daftar argumen panjang variabel dalam fungsi yang ditentukan pengguna dengan menggunakan token

Making a bowl of raspberry yogurt.
3

Catatan. Dimungkinkan juga untuk mencapai argumen panjang variabel dengan menggunakan fungsi func_num_args(), func_get_arg(), dan func_get_args(). Teknik ini tidak disarankan karena digunakan sebelum pengenalan token

Making a bowl of raspberry yogurt.
3

Daftar argumen dapat menyertakan token

Making a bowl of raspberry yogurt.
_3 untuk menunjukkan bahwa fungsi menerima sejumlah variabel argumen. Argumen akan diteruskan ke variabel yang diberikan sebagai array

Contoh #11 Menggunakan

Making a bowl of raspberry yogurt.
_3 untuk mengakses argumen variabel

Making a bowl of raspberry yogurt.
_7

Making a bowl of raspberry yogurt.
_8

Contoh di atas akan ditampilkan

Making a bowl of raspberry yogurt.
3 juga dapat digunakan saat memanggil fungsi untuk membongkar array atau variabel Traversable atau literal ke dalam daftar argumen

Contoh #12 Menggunakan

Making a bowl of raspberry yogurt.
_3 untuk memberikan argumen

Making a bowl of raspberry natural yogurt.
_1

Making a bowl of raspberry natural yogurt.
_2

Making a bowl of raspberry natural yogurt.
_3

Contoh di atas akan ditampilkan

Anda dapat menentukan argumen posisi normal sebelum

Making a bowl of raspberry yogurt.
3 token. Dalam hal ini, hanya argumen tambahan yang tidak cocok dengan argumen posisi yang akan ditambahkan ke larik yang dihasilkan oleh
Making a bowl of raspberry yogurt.
3

Dimungkinkan juga untuk menambahkan deklarasi tipe sebelum token

Making a bowl of raspberry yogurt.
3. Jika ini ada, maka semua argumen yang ditangkap oleh
Making a bowl of raspberry yogurt.
3 harus cocok dengan tipe parameter tersebut

Contoh #13 Ketik argumen variabel yang dideklarasikan

Making a bowl of raspberry natural yogurt.
_8

Making a bowl of raspberry natural yogurt.
_9

3 days
Catchable fatal error: Argument 2 passed to total_intervals() must be an instance of DateInterval, null given, called in - on line 14 and defined in - on line 2
_0

Contoh di atas akan ditampilkan

3 days
Catchable fatal error: Argument 2 passed to total_intervals() must be an instance of DateInterval, null given, called in - on line 14 and defined in - on line 2

Terakhir, argumen variabel juga dapat diteruskan dengan mengawali

Making a bowl of raspberry yogurt.
3 dengan ampersand (
3 days
Catchable fatal error: Argument 2 passed to total_intervals() must be an instance of DateInterval, null given, called in - on line 14 and defined in - on line 2
2)

PHP versi lama

Tidak diperlukan sintaks khusus untuk mencatat bahwa suatu fungsi adalah variadik;

Contoh pertama di atas akan diimplementasikan sebagai berikut di versi lama PHP

Contoh #14 Mengakses argumen variabel di versi PHP lama

3 days
Catchable fatal error: Argument 2 passed to total_intervals() must be an instance of DateInterval, null given, called in - on line 14 and defined in - on line 2
_3

Making a bowl of raspberry yogurt.
_8

Contoh di atas akan ditampilkan

Argumen bernama

PHP 8. 0. 0 memperkenalkan argumen bernama sebagai perpanjangan dari parameter posisi yang ada. Argumen bernama memungkinkan meneruskan argumen ke fungsi berdasarkan nama parameter, bukan posisi parameter. Ini membuat arti dari argumen mendokumentasikan diri sendiri, membuat argumen tidak bergantung pada urutan dan memungkinkan melewatkan nilai default secara sewenang-wenang

Argumen bernama dilewatkan dengan mengawali nilai dengan nama parameter diikuti dengan titik dua. Menggunakan kata kunci yang dicadangkan sebagai nama parameter diperbolehkan. Nama parameter harus berupa pengenal, menentukan secara dinamis tidak diperbolehkan

Contoh #15 Sintaks argumen bernama

3 days
Catchable fatal error: Argument 2 passed to total_intervals() must be an instance of DateInterval, null given, called in - on line 14 and defined in - on line 2
_5

3 days
Catchable fatal error: Argument 2 passed to total_intervals() must be an instance of DateInterval, null given, called in - on line 14 and defined in - on line 2
_6

Contoh #16 Argumen posisi versus argumen bernama

3 days
Catchable fatal error: Argument 2 passed to total_intervals() must be an instance of DateInterval, null given, called in - on line 14 and defined in - on line 2
_7

3 days
Catchable fatal error: Argument 2 passed to total_intervals() must be an instance of DateInterval, null given, called in - on line 14 and defined in - on line 2
_8

Urutan penyampaian argumen bernama tidak menjadi masalah

Contoh #17 Contoh yang sama seperti di atas dengan urutan parameter yang berbeda

3 days
Catchable fatal error: Argument 2 passed to total_intervals() must be an instance of DateInterval, null given, called in - on line 14 and defined in - on line 2
_9

Argumen bernama dapat digabungkan dengan argumen posisional. Dalam hal ini, argumen bernama harus muncul setelah argumen posisional. Dimungkinkan juga untuk menentukan hanya beberapa argumen opsional dari suatu fungsi, terlepas dari urutannya

Contoh #18 Menggabungkan argumen bernama dengan argumen posisi

function takes_array($input)
{
echo "$input[0] + $input[1] = ", $input[0]+$input[1];
}
?>
_0

Meneruskan parameter yang sama beberapa kali akan menghasilkan pengecualian Error

Contoh #19 Error dilontarkan saat melewati parameter yang sama beberapa kali

function takes_array($input)
{
echo "$input[0] + $input[1] = ", $input[0]+$input[1];
}
?>
_1

function takes_array($input)
{
echo "$input[0] + $input[1] = ", $input[0]+$input[1];
}
?>
_2

Mulai dari PHP 8. 1. 0, dimungkinkan untuk menggunakan argumen bernama setelah membongkar argumen. Argumen bernama tidak boleh mengesampingkan argumen yang sudah dibongkar

Bagaimana cara melewatkan variabel di PHP?

Untuk meneruskan variabel dengan referensi, perlu menambahkan simbol ampersand ( & ) sebelum argumen variabel . Contoh fungsi seperti itu akan terlihat sebagai berikut. fungsi( &$x ). Cakupan variabel global dan fungsi menjadi global. Alasannya adalah bahwa mereka didefinisikan oleh referensi yang sama.

Apa yang dibutuhkan () di PHP?

Persyaratan PHP . Fungsi require() menghasilkan kesalahan fatal dan menghentikan eksekusi skrip jika ada masalah saat memuat file. copies all of the text from a given file into the file that uses the include function. The require() function produces a fatal error and stops the script's execution if there is a problem loading a file.

Haruskah saya menggunakan memerlukan atau menyertakan PHP?

Gunakan persyaratan ketika file diperlukan oleh aplikasi. Gunakan include saat file tidak diperlukan dan aplikasi harus dilanjutkan saat file tidak ditemukan .

Bagaimana Anda meneruskan variabel ke suatu fungsi?

Untuk meneruskan nilai menggunakan panggilan dengan referensi, alamat argumen diteruskan ke parameter formal. Ini kemudian diterima di dalam badan fungsi di dalam daftar parameter menggunakan variabel khusus yang disebut pointer .