Tôi có một câu hỏi về phạm vi biến trong VBScript. Tôi biết có các từ khóa sau đây (từ autoitscript.com): (! Trong trường hợp này nó reuses biến toàn cầu)Phạm vi biến trong các hàm VBScript
- Dim = phạm vi địa phương nếu tên biến không tồn tại trên toàn cầu
- toàn cầu = Forces tạo biến trong phạm vi toàn cầu
- = lực lượng địa phương tạo ra các biến trong phạm vi địa phương/Chức năng
Hãy tưởng tượng rằng tôi có .vbs tập tin sau đây:
Dim strPath
strPath = "C:\folder"
DisplayPath strPath
Sub DisplayPath(strPath) 'Does this strPath get it's own local scope?
MsgBox strPath
End Sub
Trong hàm: DisplayPath(strPath)
, là strPath
a địa phương biến? Hoặc chức năng/người đăng ký có quyền truy cập vào số strPath
được xác định ở đầu phần chính của tập lệnh dưới dạng biến số toàn cầu không?
Ngoài ra, điểm của việc sử dụng một cách rõ ràng là sử dụng Dim
so với chỉ xác định các biến khi tôi sử dụng chúng, điều này có thể bằng ngôn ngữ kịch bản?
rất hữu ích, +1, cảm ơn. Tôi vui vì bạn đã làm rõ sự khác biệt giữa việc truyền tham chiếu và truyền theo giá trị (và tạo bộ nhớ mới). Tuy nhiên, những gì tôi cũng muốn biết là nếu 'strPath' là toàn cục và có thể truy cập được bởi tất cả các hàm/subs trong kịch bản, ngay cả khi tôi không chuyển chúng thành các biến chức năng cục bộ. – JohnB
@JohnB: Xem câu trả lời đã chỉnh sửa của tôi. – AnthonyWJones
Tôi thấy điểm của bạn với lỗi đánh máy, cảm ơn! – JohnB