Nếu muốn làm điều này sau:
$filteredValues = array_filter[$rawValues, function[$rawValue] {
return $this->validateValue[$rawValue];
}];
validateValue
là một phương thức riêng tư trong cùng một lớp.
Làm thế nào tôi có thể sử dụng $ bối cảnh này trong Array_Filter theo cách này?
Đã hỏi ngày 3 tháng 11 năm 2013 lúc 15:59Nov 3, 2013 at 15:59
Marty Wallacemarty WallaceMarty Wallace
32.5K53 Huy hiệu vàng134 Huy hiệu bạc198 Huy hiệu đồng53 gold badges134 silver badges198 bronze badges
0
Nếu bạn sử dụng Php 5.3, PHP không nhận ra $this
là đóng cửa, bạn cần thực hiện một mẹo như JavaScript:
$self = $this;
$filteredValues = array_filter[$rawValues, function[$rawValue] use [$self] {
return $self->validateValue[$rawValue];
}];
Lưu ý rằng những điều trên sẽ chỉ cung cấp cho bạn quyền truy cập vào đối tượng thông qua API công khai của đối tượng. Điều này khác với hỗ trợ 5.4 cho việc đóng cửa đóng cửa cho phép truy cập đầy đủ vào $this
.
Đã trả lời ngày 3 tháng 11 năm 2013 lúc 16:02Nov 3, 2013 at 16:02
Hàm ẩn danh giải thích nó với một ví dụ là gì?
Các hàm ẩn danh thường là các đối số được truyền đến các hàm bậc cao hơn hoặc được sử dụng để xây dựng kết quả của hàm bậc cao hơn cần trả về một hàm. Nếu hàm chỉ được sử dụng một lần hoặc số lần giới hạn, hàm ẩn danh có thể nhẹ hơn so với sử dụng hàm được đặt tên. — Filters elements of an array using a callback function
Sự mô tả
4 bây giờ là vô hiệu.[array $self = $this;
$filteredValues = array_filter[$rawValues, function[$rawValue] use [$self] {
return $self->validateValue[$rawValue];
}];
$array
,
?callable $callback
=
0, int $self = $this;
$filteredValues = array_filter[$rawValues, function[$rawValue] use [$self] {
return $self->validateValue[$rawValue];
}];
1 = 0]: array$self = $this;
$filteredValues = array_filter[$rawValues, function[$rawValue] use [$self] {
return $self->validateValue[$rawValue];
}];
Nếu
$self = $this;
$filteredValues = array_filter[$rawValues, function[$rawValue] use [$self] {
return $self->validateValue[$rawValue];
}];
4 mong đợi một tham số được truyền qua tham chiếu, hàm này bây giờ sẽ phát ra một Odd : Array [ [a] => 1 [c] => 3 [e] => 5 ] Even: Array [ [0] => 6 [2] => 8 [4] => 10 [6] => 12 ]7.array can be reindexed using the array_values[] function.
Ví dụ
Ví dụ #1 Array_filter [] ví dụVí dụ trên sẽ xuất ra:
Ví dụ #2 mảng_filter [] mà không có$self = $this;
$filteredValues = array_filter[$rawValues, function[$rawValue] use [$self] {
return $self->validateValue[$rawValue];
}];
4Ví dụ #3 mảng_filter [] với
$self = $this;
$filteredValues = array_filter[$rawValues, function[$rawValue] use [$self] {
return $self->validateValue[$rawValue];
}];
7Ghi chúempty[] for how PHP defines empty in this case.
Thận trọngCờ xác định những đối số nào được gửi đến
$self = $this;
$filteredValues = array_filter[$rawValues, function[$rawValue] use [$self] {
return $self->validateValue[$rawValue];
}];
4:-
9 - Pass Key làm đối số duy nhất cho$self = $this; $filteredValues = array_filter[$rawValues, function[$rawValue] use [$self] { return $self->validateValue[$rawValue]; }];
4 thay vì giá trị - pass key as the only argument to$self = $this; $filteredValues = array_filter[$rawValues, function[$rawValue] use [$self] { return $self->validateValue[$rawValue]; }];
4 instead of the value$self = $this; $filteredValues = array_filter[$rawValues, function[$rawValue] use [$self] { return $self->validateValue[$rawValue]; }];
-
Odd : Array [ [a] => 1 [c] => 3 [e] => 5 ] Even: Array [ [0] => 6 [2] => 8 [4] => 10 [6] => 12 ]
1 - Chuyển cả giá trị và khóa làm đối số cho
4 thay vì giá trị - pass both value and key as arguments to$self = $this; $filteredValues = array_filter[$rawValues, function[$rawValue] use [$self] { return $self->validateValue[$rawValue]; }];
4 instead of the value$self = $this; $filteredValues = array_filter[$rawValues, function[$rawValue] use [$self] { return $self->validateValue[$rawValue]; }];
Odd : Array [ [a] => 1 [c] => 3 [e] => 5 ] Even: Array [ [0] => 6 [2] => 8 [4] => 10 [6] => 12 ]3 sẽ chuyển giá trị làm đối số duy nhất cho
$self = $this;
$filteredValues = array_filter[$rawValues, function[$rawValue] use [$self] {
return $self->validateValue[$rawValue];
}];
4 thay thế.Trả về giá trị
Trả về mảng được lọc.
Thay đổi
8.0.0 | 4 bây giờ là vô hiệu. |
8.0.0 | Nếu 4 mong đợi một tham số được truyền qua tham chiếu, hàm này bây giờ sẽ phát ra một Odd : Array [ [a] => 1 [c] => 3 [e] => 5 ] Even: Array [ [0] => 6 [2] => 8 [4] => 10 [6] => 12 ]7. Odd : Array [ [a] => 1 [c] => 3 [e] => 5 ] Even: Array [ [0] => 6 [2] => 8 [4] => 10 [6] => 12 ]7. |
Ví dụ
Ví dụ #1 Array_filter [] ví dụarray_filter[] example
Odd : Array [ [a] => 1 [c] => 3 [e] => 5 ] Even: Array [ [0] => 6 [2] => 8 [4] => 10 [6] => 12 ]8
Odd : Array [ [a] => 1 [c] => 3 [e] => 5 ] Even: Array [ [0] => 6 [2] => 8 [4] => 10 [6] => 12 ]9
Array [ [0] => foo [2] => -1 ]0
Ví dụ trên sẽ xuất ra:
Odd : Array [ [a] => 1 [c] => 3 [e] => 5 ] Even: Array [ [0] => 6 [2] => 8 [4] => 10 [6] => 12 ]
Ví dụ #2 mảng_filter [] mà không có
4array_filter[] without $self = $this;
$filteredValues = array_filter[$rawValues, function[$rawValue] use [$self] {
return $self->validateValue[$rawValue];
}];
4$self = $this;
$filteredValues = array_filter[$rawValues, function[$rawValue] use [$self] {
return $self->validateValue[$rawValue];
}];
Array [ [0] => foo [2] => -1 ]2
Array [ [0] => foo [2] => -1 ]3
Array [ [0] => foo [2] => -1 ]4
Ví dụ trên sẽ xuất ra:
Array [ [0] => foo [2] => -1 ]
Ví dụ #3 mảng_filter [] với
7array_filter[] with $self = $this;
$filteredValues = array_filter[$rawValues, function[$rawValue] use [$self] {
return $self->validateValue[$rawValue];
}];
7$self = $this;
$filteredValues = array_filter[$rawValues, function[$rawValue] use [$self] {
return $self->validateValue[$rawValue];
}];
Array [ [0] => foo [2] => -1 ]2
Array [ [0] => foo [2] => -1 ]7
Array [ [0] => foo [2] => -1 ]8
Ví dụ trên sẽ xuất ra:
array[1] { ["b"]=> int[2] } array[2] { ["b"]=> int[2] ["d"]=> int[4] }
Ghi chú
Thận trọng
Nếu mảng được thay đổi từ chức năng gọi lại [ví dụ: phần tử được thêm, đã xóa hoặc giải phóng], hành vi của hàm này không được xác định.
Xem thêm
- Array_Intersect [] - Tính toán giao điểm của mảng
- Array_Map [] - Áp dụng cuộc gọi lại cho các phần tử của các mảng đã cho
- mảng_Reduce [] - lặp lại giảm mảng thành một giá trị duy nhất bằng cách sử dụng hàm gọi lại
- Array_walk [] - Áp dụng chức năng do người dùng cung cấp cho mọi thành viên của một mảng
Ẩn danh ¶ ¶
9 năm trước
Array [ [0] => foo [2] => -1 ]9
nicolaj dot knudsen tại gmail dot com ¶ ¶
5 năm trước
array[1] { ["b"]=> int[2] } array[2] { ["b"]=> int[2] ["d"]=> int[4] }0
array[1] { ["b"]=> int[2] } array[2] { ["b"]=> int[2] ["d"]=> int[4] }1
array[1] { ["b"]=> int[2] } array[2] { ["b"]=> int[2] ["d"]=> int[4] }2
array[1] { ["b"]=> int[2] } array[2] { ["b"]=> int[2] ["d"]=> int[4] }3
array[1] { ["b"]=> int[2] } array[2] { ["b"]=> int[2] ["d"]=> int[4] }4
array[1] { ["b"]=> int[2] } array[2] { ["b"]=> int[2] ["d"]=> int[4] }5
Technyquist ¶ ¶
6 tháng trước
array[1] { ["b"]=> int[2] } array[2] { ["b"]=> int[2] ["d"]=> int[4] }6
array[1] { ["b"]=> int[2] } array[2] { ["b"]=> int[2] ["d"]=> int[4] }7
array[1] { ["b"]=> int[2] } array[2] { ["b"]=> int[2] ["d"]=> int[4] }8
array[1] { ["b"]=> int[2] } array[2] { ["b"]=> int[2] ["d"]=> int[4] }5
Aschmidt tại Anamera Dot Net ¶
1 năm trước
validateValue
0
validateValue
1
validateValue
2
validateValue
3
validateValue
4
array[1] { ["b"]=> int[2] } array[2] { ["b"]=> int[2] ["d"]=> int[4] }5
Marc dot vanwoerkom tại Fernuni-Hagen Dot de ¶ ¶
18 năm trước
validateValue
6
validateValue
7
validateValue
8
validateValue
9
$this
0
$this
1
$this
2
$this
3
$this
4
$this
5
array[1] { ["b"]=> int[2] } array[2] { ["b"]=> int[2] ["d"]=> int[4] }5
Marc Dot Grey tại Gmail Dot Com ¶ ¶
8 năm trước
$this
7
$this
8
array[1] { ["b"]=> int[2] } array[2] { ["b"]=> int[2] ["d"]=> int[4] }5
Niko E ¶ ¶
2 tháng trước đây
$this
0
$this
1
$this
2
$this
3
array[1] { ["b"]=> int[2] } array[2] { ["b"]=> int[2] ["d"]=> int[4] }5
Justinphiggs tại Gmail Dot Com ¶ ¶
4 tháng trước
$this
5
$this
6
$this
7
$this
8
$this
9