2010-02-16 36 views
6

thể trùng lặp:
Strict mode in PHP?Có một cái gì đó trong PHP tương tự như Option Explicit trong VB

Tôi đang làm một dự án lớn trong PHP. Trong PHP bạn không cần khai báo biến. Điều này gây ra rất nhiều vấn đề cho tôi.

Trong Visual Basic 6, câu lệnh Tùy chọn rõ ràng làm cho nó bắt buộc phải khai báo biến. Là một cái gì đó tương tự có sẵn trong PHP?

+0

còn các chức năng không xác định bên trong nếu không hoạt động trong thời gian chạy thì sao? – Yosef

Trả lời

6

Nếu bạn bật thông báo lỗi E_NOTICE, PHP sẽ cho bạn biết về uninitialized biến:

ini_set("error_reporting", E_ALL); 

uninitialized là một chút khác biệt so với khai báo, nhưng nó sẽ cho bạn một hiệu ứng tương tự.

+3

+1 Cũng đáng chú ý là 'E_ALL' không * không * bao gồm' E_STRICT'. Vì vậy, tôi sẽ làm 'ini_set (" error_reporting ", E_ALL & E_STRICT);'. Cũng đáng chú ý; Bạn có thể đặt 'error_reporting' trong' php.ini' hoặc trong định nghĩa máy chủ ảo Apache của bạn bằng cách sử dụng 'php_value'. – Asaph

4
error_reporting(E_ALL); 

ném một thông báo khi bạn cố gắng sử dụng một biến không xác định

một mẹo tổng quát hơn: (. Max 20 lines) chức năng sử dụng thay vì mã toàn cầu, và làm cho họ nhỏ. Vì các biến là hàm cục bộ, nên có ít cơ hội để quên hoặc sai chính tả tên biến.

1

Tăng error reporting level chỉ ảnh hưởng đến hành vi của php khi biến/phần tử không xác định được sử dụng làm giá trị, chẳng hạn như echo $doesnotexist;.
Nhưng option explicit on cũng cấm việc sử dụng các biến chưa được khai báo như giá trị trái

Option Explicit On 
Dim x As Integer 
x = 10 
y = 11 ' error, variable is not declared 

Không có tùy chọn hoặc cấu hình thông số tương tự trong php.

+0

Có _could_ đã là một từ khóa được khai báo trong php5, đặc biệt. cho các lớp/thành viên, nhưng không có. – VolkerK

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