Tóm lại,
add_action[
'save_post', // Hook name
'log_when_saved', // Callable.
10, // Priority
3 // How many arguments the callable can accept.
];
1 và add_action[
'save_post', // Hook name
'log_when_saved', // Callable.
10, // Priority
3 // How many arguments the callable can accept.
];
2 chỉ đang gọi hàm PHP cốt lõi là function add_numbers[ $one, $two ] {
return $one + $two;
}
0. Khi bạn chạy function add_numbers[ $one, $two ] {
return $one + $two;
}
1, bạn đang lưu trữ một tham chiếu đến một hàm có thể gọi được, với một số biểu thị số lượng đối số mà hàm đó chấp nhậnadd_action[
'save_post', // Hook name
'log_when_saved', // Callable.
10, // Priority
3 // How many arguments the callable can accept.
];
Vì vậy, khi bạn gọi
add_action[
'save_post', // Hook name
'log_when_saved', // Callable.
10, // Priority
3 // How many arguments the callable can accept.
];
1, WordPress sử dụng function add_numbers[ $one, $two ] {
return $one + $two;
}
0 với khả năng gọi đó, cùng với một mảng bất kỳ đối số nào được chuyển đến add_action[
'save_post', // Hook name
'log_when_saved', // Callable.
10, // Priority
3 // How many arguments the callable can accept.
];
1Để tránh một số lỗi nhất định và để cho phép các nhà phát triển sử dụng các hàm chấp nhận ít đối số hơn so với hàm được truyền cho
add_action[
'save_post', // Hook name
'log_when_saved', // Callable.
10, // Priority
3 // How many arguments the callable can accept.
];
1, WordPress sẽ cắt bớt mảng được truyền cho function add_numbers[ $one, $two ] {
return $one + $two;
}
0 để khớp với số lượng đối số được chấp nhận trong lệnh gọi function add_numbers[ $one, $two ] {
return $one + $two;
}
1. Nếu nó không làm điều này thì bạn sẽ gặp lỗi nghiêm trọng nếu hàm của bạn không chấp nhận tất cả các biếnVì vậy, các biến mà bạn có thể sử dụng trong chức năng gọi lại của mình được xác định bởi
- Đối số nào đã được chuyển đến
1add_action[ 'save_post', // Hook name 'log_when_saved', // Callable. 10, // Priority 3 // How many arguments the callable can accept. ];
- Bạn đã chọn chấp nhận bao nhiêu biến khi chạy
1function add_numbers[ $one, $two ] { return $one + $two; }
Tên của các biến không quan trọng, nhưng thứ tự thì có. Đây là cách tất cả các hàm PHP hoạt động. Nếu tôi viết chức năng này
function add_numbers[ $one, $two ] {
return $one + $two;
}
Đối số đầu tiên được truyền cho hàm sẽ có tên biến là
$a = 1;
$b = 3;
$c = add_numbers[ $a, $b ]; // Works fine.
$d = add_numbers[ 2, 4 ]; // Even if I don't pass named variables.
0 bên trong hàm đó và đối số thứ hai sẽ có tên là $a = 1;
$b = 3;
$c = add_numbers[ $a, $b ]; // Works fine.
$d = add_numbers[ 2, 4 ]; // Even if I don't pass named variables.
1. Tên biến được sử dụng bên ngoài chức năng không quan trọng________số 8Điều này cũng đúng với móc. Các tham số được truyền cho
add_action[
'save_post', // Hook name
'log_when_saved', // Callable.
10, // Priority
3 // How many arguments the callable can accept.
];
1 được truyền dưới dạng đối số cho function add_numbers[ $one, $two ] {
return $one + $two;
}
0 theo thứ tự. Vì vậy, nếu tôi móc như thế nàyfunction add_numbers[ $one, $two ] {
return $one + $two;
}
2Sau đó, điều này hoạt động
function add_numbers[ $one, $two ] {
return $one + $two;
}
3Và điều này cũng vậy
function add_numbers[ $one, $two ] {
return $one + $two;
}
4Nhưng bất kể tên là gì,
$a = 1;
$b = 3;
$c = add_numbers[ $a, $b ]; // Works fine.
$d = add_numbers[ 2, 4 ]; // Even if I don't pass named variables.
4 sẽ luôn là ID bài đăng được chuyển đến add_action[
'save_post', // Hook name
'log_when_saved', // Callable.
10, // Priority
3 // How many arguments the callable can accept.
];
1 vì đó là đối số đầu tiên. Vì vậy, trong ví dụ này, $a = 1;
$b = 3;
$c = add_numbers[ $a, $b ]; // Works fine.
$d = add_numbers[ 2, 4 ]; // Even if I don't pass named variables.
6 là ID bài đăngfunction add_numbers[ $one, $two ] {
return $one + $two;
}
7Đó là lý do tại sao nên khớp tên biến với tên được truyền. Không phải vì bất kỳ lý do kỹ thuật nào, mà để dễ hiểu hơn
Điều này sẽ không làm việc
function add_numbers[ $one, $two ] {
return $one + $two;
}
8Bởi vì
$a = 1;
$b = 3;
$c = add_numbers[ $a, $b ]; // Works fine.
$d = add_numbers[ 2, 4 ]; // Even if I don't pass named variables.
7 là không xác định. Nếu bạn muốn sử dụng ID của bài đăng đang được lưu, bạn cần sử dụng ID được chuyển làm đối số đầu tiênTất cả điều này đặt ra câu hỏi làm thế nào để biết bạn có thể hoặc cần chấp nhận biến nào trong các cuộc gọi lại hook của mình. Đó là nơi tài liệu đến. Nếu bạn xem tài liệu về
$a = 1;
$b = 3;
$c = add_numbers[ $a, $b ]; // Works fine.
$d = add_numbers[ 2, 4 ]; // Even if I don't pass named variables.
8, bạn sẽ thấy đối số nào được truyền cho hàm gọi lại, vì vậy bạn biết đối số nào đại diện cho loại giá trị nào Các hàm gọi lại được gọi bởi PHP bất cứ khi nào một sự kiện nào đó xảy ra. Ví dụ: khi phân tích cú pháp XML, PHP có thể gọi một hàm mỗi khi nó chạm vào thẻ và bạn có thể xác định hàm người dùng của riêng mình cho mục đích được PHP gọi, sau đó chuyển tên của hàm cho PHP. Các hàm gọi lại luôn có các yêu cầu nghiêm ngặt về số lượng tham số mà chúng có thể nhận, vì PHP thường muốn chuyển các biến cho hàm gọi lại của bạn để bạn sử dụng
Chúng tôi sẽ đề cập đến các trường hợp riêng lẻ của hàm gọi lại theo yêu cầu trong suốt cuốn sách này - bây giờ điều cần thiết đơn giản là bạn hiểu chúng là gì
Bạn muốn học PHP 7?
Hacking with PHP đã được cập nhật đầy đủ cho PHP 7 và hiện có sẵn dưới dạng PDF có thể tải xuống. Nhận hơn 1200 trang học PHP thực hành ngay hôm nay
Nếu điều này hữu ích, vui lòng dành chút thời gian để nói với những người khác về Hacking với PHP bằng cách tweet về nó