Hướng dẫn func_get_arg trong php

(Php 4, Php 5, Php 7, Php 8)

Nội dung chính Show

  • Sự mô tả
  • Thông số
  • Trả về giá trị
  • Errors/Exceptions
  • Như đã vượt qua: mảng (0 => 'bar',) sau khi thay đổi: mảng (0 => 'baz',) như đã vượt qua: mảng (0 => 'bar',) sau khi thay đổi: mảng (0 => 'Baz' ,)
  • Nếu các đối số được truyền qua tham chiếu, mọi thay đổi đối với các đối số sẽ được phản ánh trong các giá trị được trả về bởi hàm này. Kể từ Php 7, các giá trị hiện tại cũng sẽ được trả về nếu các đối số được truyền theo giá trị.

func_get_args - Trả về một mảng bao gồm danh sách đối số của hàmReturns an array comprising a function's argument list

Sự mô tả

func_get_args (): mảng(): array

Hàm này có thể được sử dụng cùng với func_get_arg () và func_num_args () để cho phép các hàm do người dùng xác định chấp nhận danh sách đối số có độ dài thay đổi.func_get_arg() and func_num_args() to allow user-defined functions to accept variable-length argument lists.

Thông số

Chức năng này không có tham số.

Trả về giá trị

Trả về một mảng trong đó mỗi phần tử là một bản sao của thành viên tương ứng của danh sách đối số chức năng do người dùng hiện tại xác định.

Errors/Exceptions

Tạo cảnh báo nếu được gọi từ bên ngoài chức năng do người dùng xác định.

Ví dụ

Ví dụ #1 func_get_args () Ví dụfunc_get_args() example

function foo()
{
    
$numargs func_num_args();
    echo 
"Number of arguments: $numargs \n";
    if (
$numargs >= 2) {
        echo 
"Second argument is: " func_get_arg(1) . "\n";
    }
    
$arg_list func_get_args();
    for (
$i 0$i $numargs$i++) {
        echo 
"Argument $i is: " $arg_list[$i] . "\n";
    }
}
foo(123);
?>

Ví dụ trên sẽ xuất ra:

Number of arguments: 3 
Second argument is: 2
Argument 0 is: 1
Argument 1 is: 2
Argument 2 is: 3

Ví dụ #2 func_get_args () Ví dụ về các đối số byref và byvalfunc_get_args() example of byref and byval arguments

function byVal($arg) {
    echo 
'As passed     : 'var_export(func_get_args()), PHP_EOL;
    
$arg 'baz';
    echo 
'After change  : 'var_export(func_get_args()), PHP_EOL;
}

function

byRef(&$arg) {
    echo 
'As passed     : 'var_export(func_get_args()), PHP_EOL;
    
$arg 'baz';
    echo 
'After change  : 'var_export(func_get_args()), PHP_EOL;
}
$arg 'bar';
byVal($arg);
byRef($arg);
?>

Ví dụ trên sẽ xuất ra:

Ví dụ #2 func_get_args () Ví dụ về các đối số byref và byval
0 => 'bar',
)
After change : array (
0 => 'baz',
)
As passed : array (
0 => 'bar',
)
After change : array (
0 => 'baz',
)

Như đã vượt qua: mảng (0 => 'bar',) sau khi thay đổi: mảng (0 => 'baz',) như đã vượt qua: mảng (0 => 'bar',) sau khi thay đổi: mảng (0 => 'Baz' ,)

Ghi chú:

Ghi chú:

Ghi chú:

Ghi chú:

Kể từ Php 8.0.0, họ các chức năng Func _*() được dự định chủ yếu là minh bạch đối với các đối số được đặt tên, bằng cách đối xử với các đối số như thể tất cả chúng được thông qua một vị trí và các đối số bị thiếu được thay thế bằng mặc định của chúng. Hàm này bỏ qua việc thu thập các đối số variadic chưa biết có tên. Không xác định các đối số được đặt tên được thu thập chỉ có thể được truy cập thông qua tham số Variadic.: This function returns a copy of the passed arguments only, and does not account for default (non-passed) arguments.

Nếu các đối số được truyền qua tham chiếu, mọi thay đổi đối với các đối số sẽ được phản ánh trong các giá trị được trả về bởi hàm này. Kể từ Php 7, các giá trị hiện tại cũng sẽ được trả về nếu các đối số được truyền theo giá trị.

  • Lưu ý: Hàm này chỉ trả về một bản sao của các đối số được truyền và không tính đến các đối số mặc định (không thông qua).
  • func_get_arg()
  • func_num_args()
  • ReflectionFunctionAbstract::getParameters()

Xem thêm

... Cú pháp

T.M. ¶

17 năm trước

Simple function to calculate average value using dynamic arguments:
function average(){
    return
array_sum(func_get_args())/func_num_args();
}
print
average(10, 15, 20, 25); // 17.5
?>

How to create a polymorphic/"overloaded" function

function select()
{
   
$t = '';
   
$args = func_get_args();
    foreach (
$args as &$a) {
       
$t .= gettype($a) . '|';
       
$a = mysql_real_escape_string($a);
    }
    if (
$t != '') {
       
$t = substr($t, 0, - 1);
    }
   
$sql = '';
    switch (
$t) {
        case
'integer':
           
// search by ID
           
$sql = "id = {$args[0]}";
            break;
        case
'string':
           
// search by name
           
$sql = "name LIKE '%{$args[0]}%'";
            break;
        case
'string|integer':
           
// search by name AND status
           
$sql = "name LIKE '%{$args[0]}%' AND status = {$args[1]}";
            break;
        case
'string|integer|integer':
           
// search by name with limit
           
$sql = "name LIKE '%{$args[0]}%' LIMIT {$args[1]},{$args[2]}";
            break;
        default:
           
// :P
           
$sql = '1 = 2';
    }
    return
mysql_query('SELECT * FROM table WHERE ' . $sql);
}
$res = select(29); // by ID
$res = select('Anderson'); // by name
$res = select('Anderson', 1); // by name and status
$res = select('Anderson', 0, 5); // by name with limit
?>

Anderson tại Francotecnologia dot com ¶

14 năm trước

function foo()
{
    
$numargs func_num_args();
    echo 
"Number of arguments: $numargs \n";
    if (
$numargs >= 2) {
        echo 
"Second argument is: " func_get_arg(1) . "\n";
    }
    
$arg_list func_get_args();
    for (
$i 0$i $numargs$i++) {
        echo 
"Argument $i is: " $arg_list[$i] . "\n";
    }
}
foo(123);
?>
0

function foo()
{
    
$numargs func_num_args();
    echo 
"Number of arguments: $numargs \n";
    if (
$numargs >= 2) {
        echo 
"Second argument is: " func_get_arg(1) . "\n";
    }
    
$arg_list func_get_args();
    for (
$i 0$i $numargs$i++) {
        echo 
"Argument $i is: " $arg_list[$i] . "\n";
    }
}
foo(123);
?>
1

function foo()
{
    
$numargs func_num_args();
    echo 
"Number of arguments: $numargs \n";
    if (
$numargs >= 2) {
        echo 
"Second argument is: " func_get_arg(1) . "\n";
    }
    
$arg_list func_get_args();
    for (
$i 0$i $numargs$i++) {
        echo 
"Argument $i is: " $arg_list[$i] . "\n";
    }
}
foo(123);
?>
2

FoxKeys tại Gmail Dot Com ¶

6 năm trước

function foo()
{
    
$numargs func_num_args();
    echo 
"Number of arguments: $numargs \n";
    if (
$numargs >= 2) {
        echo 
"Second argument is: " func_get_arg(1) . "\n";
    }
    
$arg_list func_get_args();
    for (
$i 0$i $numargs$i++) {
        echo 
"Argument $i is: " $arg_list[$i] . "\n";
    }
}
foo(123);
?>
3

function foo()
{
    
$numargs func_num_args();
    echo 
"Number of arguments: $numargs \n";
    if (
$numargs >= 2) {
        echo 
"Second argument is: " func_get_arg(1) . "\n";
    }
    
$arg_list func_get_args();
    for (
$i 0$i $numargs$i++) {
        echo 
"Argument $i is: " $arg_list[$i] . "\n";
    }
}
foo(123);
?>
4

function foo()
{
    
$numargs func_num_args();
    echo 
"Number of arguments: $numargs \n";
    if (
$numargs >= 2) {
        echo 
"Second argument is: " func_get_arg(1) . "\n";
    }
    
$arg_list func_get_args();
    for (
$i 0$i $numargs$i++) {
        echo 
"Argument $i is: " $arg_list[$i] . "\n";
    }
}
foo(123);
?>
5

function foo()
{
    
$numargs func_num_args();
    echo 
"Number of arguments: $numargs \n";
    if (
$numargs >= 2) {
        echo 
"Second argument is: " func_get_arg(1) . "\n";
    }
    
$arg_list func_get_args();
    for (
$i 0$i $numargs$i++) {
        echo 
"Argument $i is: " $arg_list[$i] . "\n";
    }
}
foo(123);
?>
6

function foo()
{
    
$numargs func_num_args();
    echo 
"Number of arguments: $numargs \n";
    if (
$numargs >= 2) {
        echo 
"Second argument is: " func_get_arg(1) . "\n";
    }
    
$arg_list func_get_args();
    for (
$i 0$i $numargs$i++) {
        echo 
"Argument $i is: " $arg_list[$i] . "\n";
    }
}
foo(123);
?>
7

function foo()
{
    
$numargs func_num_args();
    echo 
"Number of arguments: $numargs \n";
    if (
$numargs >= 2) {
        echo 
"Second argument is: " func_get_arg(1) . "\n";
    }
    
$arg_list func_get_args();
    for (
$i 0$i $numargs$i++) {
        echo 
"Argument $i is: " $arg_list[$i] . "\n";
    }
}
foo(123);
?>
8

function foo()
{
    
$numargs func_num_args();
    echo 
"Number of arguments: $numargs \n";
    if (
$numargs >= 2) {
        echo 
"Second argument is: " func_get_arg(1) . "\n";
    }
    
$arg_list func_get_args();
    for (
$i 0$i $numargs$i++) {
        echo 
"Argument $i is: " $arg_list[$i] . "\n";
    }
}
foo(123);
?>
9

function byVal($arg) {
    echo 
'As passed     : 'var_export(func_get_args()), PHP_EOL;
    
$arg 'baz';
    echo 
'After change  : 'var_export(func_get_args()), PHP_EOL;
}
0

Nhà công nghệ OpenTechnologist ¶

10 năm trước

function byVal($arg) {
    echo 
'As passed     : 'var_export(func_get_args()), PHP_EOL;
    
$arg 'baz';
    echo 
'After change  : 'var_export(func_get_args()), PHP_EOL;
}
2

function byVal($arg) {
    echo 
'As passed     : 'var_export(func_get_args()), PHP_EOL;
    
$arg 'baz';
    echo 
'After change  : 'var_export(func_get_args()), PHP_EOL;
}
3

function byVal($arg) {
    echo 
'As passed     : 'var_export(func_get_args()), PHP_EOL;
    
$arg 'baz';
    echo 
'After change  : 'var_export(func_get_args()), PHP_EOL;
}
4

function byVal($arg) {
    echo 
'As passed     : 'var_export(func_get_args()), PHP_EOL;
    
$arg 'baz';
    echo 
'After change  : 'var_export(func_get_args()), PHP_EOL;
}
5

function byVal($arg) {
    echo 
'As passed     : 'var_export(func_get_args()), PHP_EOL;
    
$arg 'baz';
    echo 
'After change  : 'var_export(func_get_args()), PHP_EOL;
}
6

ario [a] mail [dot] utexas [dot] edu ¶

15 năm trước

function byVal($arg) {
    echo 
'As passed     : 'var_export(func_get_args()), PHP_EOL;
    
$arg 'baz';
    echo 
'After change  : 'var_export(func_get_args()), PHP_EOL;
}
7

function byVal($arg) {
    echo 
'As passed     : 'var_export(func_get_args()), PHP_EOL;
    
$arg 'baz';
    echo 
'After change  : 'var_export(func_get_args()), PHP_EOL;
}
8

function byVal($arg) {
    echo 
'As passed     : 'var_export(func_get_args()), PHP_EOL;
    
$arg 'baz';
    echo 
'After change  : 'var_export(func_get_args()), PHP_EOL;
}
9

Daveno tại ovumspamdesign dot com ¶

21 năm trước

function0

function1

function2

Mitko tại Edabg Dot Com ¶

15 năm trước

function3

function4

Daveno tại ovumspamdesign dot com ¶

6 năm trước

function6

function7

function8