Hướng dẫn php call_user_func - cuộc gọi php_user_func

Nội dung

  • 1 Khai báo linh hoạt tham số hàm Khai báo linh hoạt tham số hàm
  • 2 Biến hàm Biến hàm
  • 3 Cách gọi hàm ở mọi nơi Cách gọi hàm ở mọi nơi
  • 4 Tham số hàm là callback Tham số hàm là callback
  • 5 Phạm vi sử dụng biến trong hàm Phạm vi sử dụng biến trong hàm

Để học một ngôn ngữ không quá khó, với một ngôn ngữ lập trình bậc cao hiện nay đều có những quy tắc và thuật ngữ giống nhau bạn cần nắm ý tưởng của ngôn ngữ đó thì nguyên lý các lệnh, hàm, biến sẽ rất đơn giản với bạn. Bài hôm nay mình sẽ hướng dẫn các bạn cách tạo và gọi hàm trong PHP.

Cách tạo hàm trong PHP quá quen thuộc, mình sẽ không nói thêm nữa, những vấn đề sau đây bạn có thể thường hay sử dụng và khá hữu ích khi bạn sử dụng lẫn PHP và muốn chứa nhiều thẻ HTML trong kết quả trả về. Nếu bạn có nhiều chuỗi HTML muốn trả về của hàm, sử dụng cách sau:
Nếu bạn có nhiều chuỗi HTML muốn trả về của hàm, sử dụng cách sau:

function return_html(){
    ob_start();
	?>
	
	
Khai báo linh hoạt tham số hàm

Không nhất thiết khai báo đầy đủ tham số của hàm, gọi hàm và truyền tham số có thể vượt quá số lượng khai báo có trên định nghĩa hàm.

function ham1(){

}
ham1('a','b');  #pass any nums params
ham1(34,345,46);

Trong hàm bạn sử dụng các hàm này để lấy các tham số được truyền vào hàm:

$func=function(){};
$func();	//cách gọi hàm biến
4,
$func=function(){};
$func();	//cách gọi hàm biến
5

  • func_get_args(): lấy mảng tất cả các tham số được truyền vào hàm.: lấy mảng tất cả các tham số được truyền vào hàm.
  • func_get_arg(i): trả về giá trị tham số ở vị trí
    $func=function(){};
    $func();	//cách gọi hàm biến
    
    6
    : trả về giá trị tham số ở vị trí
    $func=function(){};
    $func();	//cách gọi hàm biến
    
    6

Bạn có thể đếm số lượng tham số bởi hàm

$func=function(){};
$func();	//cách gọi hàm biến
7.

Biến hàm

Giống như javascript, PHP có thể chứa hàm vào biến.

$func=function(){};
$func();	//cách gọi hàm biến

Liên kết hàm vào biến bởi tên hàm.

function ham1(){...}
$func='ham1'; //link to function name
$func();
Cách gọi hàm ở mọi nơi

Cách khác bạn gọi hàm tự tạo nếu biết tên hàm, và truyền một hoặc nhiều tham số vào hàm:

//cho phép truyền một tham số vào hàm
call_user_func('ten_ham','tham so');

//có thể truyền nhiều tham số
call_user_func_array("foobar", array("one", "two"));

Nếu muốn gọi phương thức của đối tượng.

bar() method with 2 arguments
$foo = new foo;
call_user_func_array(array($foo, "bar"), array("three", "four"));
?>

Chi tiết hàm call_user_func_array.

Tham số hàm là callback

Truyền tham số hàm như một callback gọi lại từ nơi gọi hàm.

/*pass function as argument to function like callback*/
function ham1($cb){
	if(is_callable($cb)) $cb('sfsdf');
}
ham1(function($str){
	echo $str;
});

Sử dụng hàm

$func=function(){};
$func();	//cách gọi hàm biến
8 để kiểm tra biến có liên kết với hàm.

Phạm vi sử dụng biến trong hàm

Để sử dụng các biến nằm ngoài cùng với nơi khai báo hàm bạn sử dụng từ khóa

$func=function(){};
$func();	//cách gọi hàm biến
9 và khai báo các biến muốn sử dụng trong hàm, như thế này.

$a='sdff';$b=345;$x=new Object();
function ham2() use($a,$b,...,&$x){	//có thể truyền tham biến
	echo $a;
}
/*variable scope in function context*/
function ham1(){
	$a='sdff';$b=345;$x=new Object();
	function ham2() use($a,$b,...,&$x){	//có thể truyền tham biến
		echo $a;
	}
	ham2();
}

Chúc bạn thành công!

Nếu bạn thấy bài viết này hữu ích, hãy chia sẻ với bạn bè bằng cách nhấn nút chia sẻ ở bên dưới. Theo dõi chúng tôi trên Twitter và Facebook

PHP call_user_func so với chỉ gọi hàm?

Tôi chắc chắn có một lời giải thích rất dễ dàng cho việc này. Sự khác biệt giữa cái này là gì:Sự khác biệt giữa cái này là gì:

function barber($type){
    echo "You wanted a $type haircut, no problem\n";
}
call_user_func('barber', "mushroom");
call_user_func('barber', "shave");

... Và điều này (và lợi ích là gì?):

function ham1(){

}
ham1('a','b');  #pass any nums params
ham1(34,345,46);
0
  • php
  • function

81 hữu ích 0 bình luận 56k xem chia sẻ 0 bình luận 56k xem chia sẻ

answer

80

Hướng dẫn php call_user_func - cuộc gọi php_user_func

Luôn luôn sử dụng tên hàm thực tế khi bạn biết nó.

function ham1(){...}
$func='ham1'; //link to function name
$func();
0 là để gọi các hàm có tên mà bạn không biết trước nhưng nó kém hiệu quả hơn vì chương trình phải tra cứu hàm khi chạy. là để gọi các hàm có tên mà bạn không biết trước nhưng nó kém hiệu quả hơn vì chương trình phải tra cứu hàm khi chạy.

80 hữu ích 5 bình luận chia sẻ 5 bình luận chia sẻ

answer

31

Luôn luôn sử dụng tên hàm thực tế khi bạn biết nó.

function ham1(){

}
ham1('a','b');  #pass any nums params
ham1(34,345,46);
1

function ham1(){...}
$func='ham1'; //link to function name
$func();
0 là để gọi các hàm có tên mà bạn không biết trước nhưng nó kém hiệu quả hơn vì chương trình phải tra cứu hàm khi chạy.Hãy xem xét những điều sau đây:

function ham1(){

}
ham1('a','b');  #pass any nums params
ham1(34,345,46);
2

80 hữu ích 5 bình luận chia sẻ

function ham1(){

}
ham1('a','b');  #pass any nums params
ham1(34,345,46);
3

Mặc dù bạn có thể gọi tên hàm biến theo cách này: 1 bình luận chia sẻ

answer

15

Luôn luôn sử dụng tên hàm thực tế khi bạn biết nó.

function ham1(){...}
$func='ham1'; //link to function name
$func();
0tùy chọn là có, do đó bạn có thể làm những việc như:

function ham1(){

}
ham1('a','b');  #pass any nums params
ham1(34,345,46);
4

function ham1(){...}
$func='ham1'; //link to function name
$func();
0 là để gọi các hàm có tên mà bạn không biết trước nhưng nó kém hiệu quả hơn vì chương trình phải tra cứu hàm khi chạy.
function ham1(){...}
$func='ham1'; //link to function name
$func();
2chuỗi có thể thú vị hơn và được tạo ra trong thời gian chạy. Bạn không nên sử dụng call_user_func trừ khi bạn phải làm thế, vì nó chậm hơn.

80 hữu ích 5 bình luận chia sẻ 1 bình luận chia sẻ

answer

7

Luôn luôn sử dụng tên hàm thực tế khi bạn biết nó.

function ham1(){

}
ham1('a','b');  #pass any nums params
ham1(34,345,46);
5

function ham1(){...}
$func='ham1'; //link to function name
$func();
0 là để gọi các hàm có tên mà bạn không biết trước nhưng nó kém hiệu quả hơn vì chương trình phải tra cứu hàm khi chạy. 3 bình luận chia sẻ

answer

3

Luôn luôn sử dụng tên hàm thực tế khi bạn biết nó.Dưới đây là ví dụ bẩn được Wordpress sử dụng

function ham1(){

}
ham1('a','b');  #pass any nums params
ham1(34,345,46);
6

function ham1(){...}
$func='ham1'; //link to function name
$func();
0 là để gọi các hàm có tên mà bạn không biết trước nhưng nó kém hiệu quả hơn vì chương trình phải tra cứu hàm khi chạy.

function ham1(){

}
ham1('a','b');  #pass any nums params
ham1(34,345,46);
7

80 hữu ích 5 bình luận chia sẻ

function ham1(){

}
ham1('a','b');  #pass any nums params
ham1(34,345,46);
8

Mặc dù bạn có thể gọi tên hàm biến theo cách này:

function ham1(){

}
ham1('a','b');  #pass any nums params
ham1(34,345,46);
9

có những trường hợp bạn không biết bạn đang vượt qua bao nhiêu cuộc tranh cãi. Hãy xem xét những điều sau đây: 0 bình luận chia sẻ

answer

2

Luôn luôn sử dụng tên hàm thực tế khi bạn biết nó.Nó hoạt động với các hàm tĩnh / thể hiện và nó có thể lấy một mảng các tham số. Thêm thông tin tại https://trowski.com/2015/06/20/php-callable-paradox

$func=function(){};
$func();	//cách gọi hàm biến
0

function ham1(){...}
$func='ham1'; //link to function name
$func();
0 là để gọi các hàm có tên mà bạn không biết trước nhưng nó kém hiệu quả hơn vì chương trình phải tra cứu hàm khi chạy. 0 bình luận chia sẻ

answer

0

Luôn luôn sử dụng tên hàm thực tế khi bạn biết nó.nó có thể đến từ bên ngoài hoặc được xác định khi đang bay. nghĩa là, bạn không biết chức năng nào sẽ cần được chạy tại thời điểm tạo mã.

function ham1(){...}
$func='ham1'; //link to function name
$func();
0 là để gọi các hàm có tên mà bạn không biết trước nhưng nó kém hiệu quả hơn vì chương trình phải tra cứu hàm khi chạy. 0 bình luận chia sẻ

answer

1

Luôn luôn sử dụng tên hàm thực tế khi bạn biết nó.

$func=function(){};
$func();	//cách gọi hàm biến
1

function ham1(){...}
$func='ham1'; //link to function name
$func();
0 là để gọi các hàm có tên mà bạn không biết trước nhưng nó kém hiệu quả hơn vì chương trình phải tra cứu hàm khi chạy.

$func=function(){};
$func();	//cách gọi hàm biến
2

80 hữu ích 5 bình luận chia sẻ

$func=function(){};
$func();	//cách gọi hàm biến
3

Mặc dù bạn có thể gọi tên hàm biến theo cách này:https://3v4l.org/iBERh có vẻ như phương thức thứ hai hoạt động cho PHP 7 trở đi, nhưng không phải là 5.6 5.6.

1 hữu ích 4 bình luận chia sẻ 4 bình luận chia sẻ

Đăng nhập để trả lời câu hỏi

Có thể bạn quan tâm