Hỗ trợ » Trình cắm. Nút chia sẻ phương tiện truyền thông xã hội. MashShare » Ngoại lệ trong quá trình truyền chuỗi trong PHP 8
Ngoại lệ trong quá trình truyền chuỗi trong PHP 8Đã giải quyết ryzedigitalmah
[@ryzedigitalmah]
8 tháng trước
Sử dụng PHP8 và phiên bản WP mới nhất, lớp Rolling Curl X dường như đưa ra một ngoại lệ khi chuyển điều khiển cuộn tròn thành chuỗi
Kể từ khi PHP 8 giới thiệu một lớp CurlHandle, điều này có thể cần phải được thay đổi từ
$key = [chuỗi] $ch;
ĐẾN
$key = spl_object_hash[$ch];
Nếu bạn muốn giữ khả năng tương thích với Phiên bản PHP cũ hơn, bạn có thể muốn gói nó trong một số loại if-else
if[is_resource[$ch]] {
$key = [chuỗi] $ch;
} khác {
$key = spl_object_hash[$ch];
}
Đang xem 2 trả lời - 1 đến 2 [trong tổng số 2]
Rene Hermenau
[@renehermi]
Xin chào @ryzedigitalmah
Cảm ơn rất nhiều. Đây là một sản phẩm tuyệt vời
NHƯ tôi đang tìm người bảo trì cho MashShare, bạn có muốn trò chuyện một chút không?
Bạn có thể liên hệ trực tiếp với tôi tại bộ phận hỗ trợ [at] mashshare. mạng lướiChúc mừng
renéRene Hermenau
[@renehermi]
Điều này được giải quyết trong bản phát hành mới nhất
Đang xem 2 trả lời - 1 đến 2 [trong tổng số 2]
- Bạn phải đăng nhập để trả lời chủ đề này
[PHP 5 >= 5. 1. 0, PHP7]
Ngoại lệ. getTraceAsString - Lấy dấu vết ngăn xếp dưới dạng chuỗi
Sự miêu tả
ngoại lệ chuỗi công khai cuối cùng. getTraceAsString [ khoảng trống ]
Thông số
Chức năng này không có tham số
Giá trị trả về
Trả về dấu vết ngăn xếp ngoại lệ dưới dạng một chuỗi
ví dụ
Ví dụ #1 Ngoại lệ. getTraceAsString[] ví dụ
function test[] {
throw new Exception;
}
try {
test[];
} catch[Exception $e] {
echo $e->getTraceAsString[];
}
?>
Ví dụ trên sẽ xuất ra một cái gì đó tương tự như
#0 /home/bjori/tmp/ex.php[7]: test[] #1 {main}
Các ngoại lệ được ném vào PHP có thể tùy chọn in thông tin ngoại lệ trên màn hình hoặc trả về một chuỗi có ngoại lệ, bao gồm cả dấu vết ngăn xếp
function test[] {
try {
throw new \Exception[];
}
catch [Exception $ex] {
echo $ex;
}
}
test['1234567890123456789];
Exception in ...:...
Stack trace:
#0 ...[...]: test['123456789012345...']
Theo mặc định, độ dài của các tham số trong theo dõi ngăn xếp bị cắt ngắn thành 15 byte, theo sau là ...
. Lưu ý cách dòng bị cắt ngắn thành 15 byte, theo sau là dấu chấm lửng
test['123456789012345...']
Trong PHP7. 4, một cài đặt INI mới có tên zend.exception_ignore_args
đã được thêm vào, cài đặt này có thể ẩn hoàn toàn thông tin tham số khỏi dấu vết ngăn xếp
zend.exception_ignore_args=false
Một lệnh INI như trên sẽ ẩn hoàn toàn các tham số trong dấu vết ngăn xếp
Trong PHP8. 0, có một lệnh INI mới để giới hạn độ dài của các tham số được hiển thị trong dấu vết ngăn xếp. Lưu ý rằng lệnh zend.exception_ignore_args
vẫn có thể ẩn hoàn toàn thông tin tham số khỏi dấu vết ngăn xếp
zend.exception_string_param_max_len=42
Lệnh hơi dài nhưng rõ ràng này có thể mở rộng dấu vết ngăn xếp để hiển thị thêm thông tin trong dấu vết ngăn xếp. Chúng có thể giúp gỡ lỗi dễ dàng vì độ dài tối đa 15 byte thường không đủ cho các URL [ví dụ: ____22_______ đã là 12 byte, chỉ còn lại ba byte cho phần còn lại], truy vấn cơ sở dữ liệu, v.v.
Để ngăn cấu hình bị định cấu hình sai ghi hoặc xuất quá nhiều dữ liệu do thay đổi này, có giới hạn cố định là 1000000 byte đối với lệnh này
Lưu ý rằng thay đổi này chỉ ảnh hưởng khi một Throwable
[xem phân cấp các ngoại lệ PHP] bị ép buộc thành một
Exception in ...:...
Stack trace:
#0 ...[...]: test['123456789012345...']
0, được truy xuất rõ ràng dưới dạng một chuỗi hoặc khi một ngoại lệ chưa được bắt gặp được in trên màn hình- Khi một
1 bị buộc thành chuỗi, chẳng hạn nhưException in ...:... Stack trace: #0 ...[...]: test['123456789012345...']
2 hoặcException in ...:... Stack trace: #0 ...[...]: test['123456789012345...']
3Exception in ...:... Stack trace: #0 ...[...]: test['123456789012345...']
- Khi một
1 được truy xuất dưới dạng chuỗi, vớiException in ...:... Stack trace: #0 ...[...]: test['123456789012345...']
5, tôi. e.Exception in ...:... Stack trace: #0 ...[...]: test['123456789012345...']
6Exception in ...:... Stack trace: #0 ...[...]: test['123456789012345...']
- Lỗi mặc định được in trên màn hình khi không bắt được ngoại lệ
Thay đổi này không ảnh hưởng đến hàm
Exception in ...:...
Stack trace:
#0 ...[...]: test['123456789012345...']
7 hoặc phương thức Exception in ...:...
Stack trace:
#0 ...[...]: test['123456789012345...']
8 vì cả hai đều trả về dấu vết ngăn xếp đầy đủTác động tương thích ngược
Giá trị cấu hình mặc định của
Exception in ...:...
Stack trace:
#0 ...[...]: test['123456789012345...']
9 vẫn là test['123456789012345...']
0 byte. Điều này có nghĩa là trừ khi giá trị này không được cập nhật, dấu vết ngăn xếp sẽ giống nhau