2016-04-29 20 views
5

Tôi đang sử dụng một số plugin cao cấp và phân tích mã của họ tôi thấy, rằng trong một số chức năng mà họ sử dụng mã như:Cách sử dụng an toàn. = Toán tử trên biến chưa được khởi tạo?

$output .= $some_str;

khi đó $ đầu ra đã không được đề cập bất cứ nơi nào trước đó.

Mã này an toàn như thế nào? Tôi đã cố gắng tìm bất kỳ hướng dẫn nào trong Hướng dẫn sử dụng PHP cho điều này, nhưng đối với những gì tôi thấy, chúng chỉ định nghĩa nó cho cả đầu ra $ và $ some_str trước đó được thiết lập trước đây.

Sau đó biến đầu ra $ này được sử dụng để lặp lại mã HTML.

Bạn có thấy bất kỳ thông số kỹ thuật nào liên quan đến điều đó không? Có lẽ có điều gì đó mà tôi có thể làm bên ngoài các plugin đó để làm cho mã này an toàn hơn? Một số giá trị mặc định được xác định cho tất cả các biến chưa được khởi tạo?

Cảm ơn bạn!

+1

Định nghĩa của bạn về "an toàn" là gì? Ngoài giá trị NULL được ngụ ý và thông báo/cảnh báo (hoặc mục nhập nhật ký), ngôn ngữ kịch bản không dễ bị, ví dụ: lỗi con trỏ null. Đó là coverd trong http://php.net/manual/en/language.variables.basics.php#example-112 btw. Ví dụ: – mario

+0

@mario, ví dụ: mã HTML này có thể tạo ra sau này, chứa bất kỳ thứ gì không được cố ý đặt ở đó. –

+1

Các trường hợp bạn nên cảnh giác không phải là những trường hợp có biến * uninitialized *. Những người đó sẽ không làm hại gì cả. Đối với plugin hoặc chủ đề, có thể vô tình sử dụng lại các biến * kế thừa *, ví dụ: từ phạm vi biến được chia sẻ (toàn cục). Mà có thể gây ra đầu ra ngoài ý muốn, vv – mario

Trả lời

7

Thực tiễn không tốt, đó là lý do tại sao PHP sẽ phát hành E_NOTICE (nếu bạn bật báo cáo lỗi).

Điều đó nói rằng, biến PHP luôn được khởi chạy tự động để nó sẽ không có bất kỳ tác động tiêu cực nào.

Các vấn đề liên quan