Tất cả câu trả lời ở đây đều tốt, nhưng ... bạn có chắc chắn muốn làm điều này không?
Thay đổi biến toàn cầu từ bên trong hàm thường là một ý tưởng tồi, vì nó có thể dễ dàng khiến mã spaghetti xảy ra, trong đó các biến đang được thay đổi trên toàn hệ thống, chức năng phụ thuộc lẫn nhau, vv .
Xin cho phép tôi đề nghị một vài lựa chọn:
1) hướng đối tượng lập trình
2) Có chức năng trả về một giá trị, được sự phân công của người gọi.
ví dụ: $ Var = checkdate();
3) Có giá trị được lưu trữ trong một mảng được truyền vào các chức năng bằng cách tham khảo
chức năng checkdate (& $ giá trị) { if (condition) { $ giá trị [ "hẹn hò" ] = "01-01-11"; } }
Hy vọng điều này sẽ hữu ích.
Nguồn
2010-11-08 20:41:23
Đối với ví dụ thứ ba (C), nên dòng đầu tiên và cuối cùng tham chiếu $ var hoặc $ funcVar ... hay dòng cuối cùng đó là '$ var = checkdate ($ var);'? –
@JeromyFrench Dòng đầu tiên và cuối cùng tham chiếu đến biến trong phạm vi bên ngoài, có tên '$ var'.Bên trong hàm, nó có thể có bất kỳ tên nào khác, vì vậy tôi đã chọn '$ funcVar' để minh họa cụ thể rằng tên có thể khác. Về '$ var = checkdate ($ var);', toàn bộ mục đích của ví dụ là để hiển thị truyền _by reference_ và thay đổi biến được truyền trực tiếp trong hàm. –
Ok, tôi nghĩ mình đã hiểu. 'function checkdate (& $ funcVar)' kết hợp với 'checkdate ($ var);' ánh xạ '$ var' bên ngoài vào' $ funcVar' bên trong. –