2012-01-09 25 views
6

Tôi thường chống lại việc sử dụng @ vì nó có thể gây ra rất nhiều cơn đau đầu. Nhưng hãy xem xét hai ví dụ sau:là @unlink là một thực tiễn không tốt?

a) 

if(file_exists('file')) 
    unlink('file'); 

.

b) 

@unlink('file'); 

.

Nghe có vẻ như b đang gây ra ít tra cứu đĩa hơn, điều này tốt cho hiệu suất. Vì vậy, câu hỏi của tôi là: sẽ tùy chọn b gây ra cho tôi bất kỳ vấn đề nào hoặc có bất kỳ sự mất liên quan nào liên quan đến a?

+4

Điều gì xảy ra nếu có lý do khác khiến tệp không thể xóa được? – PeeHaa

Trả lời

4

Tôi sẽ chuyển sang mục đầu tiên.

Điều gì sẽ xảy ra nếu tệp không thể bị xóa vì một lý do khác ngoài thực tế là tệp không tồn tại?

+0

nhưng, nếu tôi đảm bảo rằng thư mục của tôi có thể ghi được trong việc bắt đầu tập lệnh, tôi có thể đạt được hiệu suất với tùy chọn 'b' không? Ví dụ trong trường hợp tôi thực sự cần cải thiện hiệu suất và tôi chắc chắn rằng tôi đã định cấu hình chính xác môi trường của mình ... –

+0

Chẳng phải đó cũng là cuộc gọi đến hệ thống tệp phải không? – PeeHaa

+0

nhưng một lần trong việc bắt đầu chống lại nhiều lần có thể trong khi chạy tập lệnh ... –

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