Có ai từng nghĩ về câu hỏi này không. Tại sao chúng ta phải viết $var_name = value;
và không phải var_name = value;
? Có, tôi biết rằng đó là quy tắc cú pháp mà PHP sử dụng, nhưng tại sao nó là biểu tượng dấu hiệu $
?
Trả lời
Vì PHP dựa trên Perl sử dụng $
, mặc dù các ký hiệu Perl được sử dụng có ý nghĩa và được sử dụng để chỉ ra loại dữ liệu (chẳng hạn như @ được sử dụng để chỉ mảng) PHP chỉ có $
. PHP trong giai đoạn đầu của nó là một phiên bản đơn giản của Perl nhưng theo thời gian kết hợp nhiều tính năng của Perl, mặc dù người ta có thể cho rằng PHP đã được một thời gian dài một phiên bản nguyên thủy đơn giản của Perl kể từ trước PHP 5.3 nó không bao gồm các tính năng đã được xung quanh trong các ngôn ngữ khác như đóng cửa/không gian tên.
http://en.wikipedia.org/wiki/PHP
Larry Wall, tác giả của Perl, được lấy cảm hứng để sử dụng $
từ vỏ kịch bản: http://en.wikipedia.org/wiki/Sigil_%28computer_programming%29
Tôi nhớ sử dụng $ để đánh dấu các biến chuỗi trong c64 cơ bản. –
@Itay: nhưng đó là hậu tố. – Artelius
Nó không phải là lỗi của ngôn ngữ mà máy chủ giá rẻ không muốn nâng cấp.PHP là ngôn ngữ riêng của nó. –
prepending tất cả các biến với $ làm cho mã phần nào dễ dàng hơn để phân tích, và phù hợp với " Xin chào $ var "biến-nhúng-trong-chuỗi ý tưởng.
Câu trả lời thú vị:
Hãy suy nghĩ về biến PHP là người, bạn đặt tên một người và chỉ định công việc!
Nhưng người đó sẽ từ chối làm việc nếu bạn không trả tiền, vì vậy, cung cấp một đồng đô la trong tay đầu tiên :)
$ Jack = "lái xe của tôi";
Chỉ mang lại niềm vui cho "Trò chơi"! Tận hưởng!
Về một câu trả lời thực tế:
Các $ dấu hiệu đã được lựa chọn trong thời gian đầu của mã hóa máy tính, bởi vì nó là một dấu hiệu hiện diện trong hầu như tất cả các char thiết mã, và một dấu hiệu hiếm khi cần trong vòng ngôn ngữ lập trình!
Điều này đã được phổ biến trong các ngôn ngữ máy tính trong một thời gian dài, đó là tất cả. Lâu trước Perl! Ví dụ: hãy xem Commodore 64 BASIC
10 PRINT "WHAT IS YOUR NAME?"
20 INPUT A$
30 IF A$="BAHKTIYOR" THEN PRINT "HEY CHECK OUT THAT DOLLAR SIGN"
Trong BASIC $ là sau tên biến, tuy nhiên.
- 1. Tại sao biến Perl cần phải bắt đầu bằng $,%, @ (sigils)?
- 2. Tại sao địa chỉ bộ nhớ bắt đầu bằng 0x?
- 3. Tại sao văn bản từ Assembly.GetManifestResourceStream() bắt đầu bằng ba ký tự rác?
- 4. Tại sao Resharper đổi tên biến để bắt đầu bằng dấu gạch dưới?
- 5. tại sao lệnh windbg bắt đầu bằng. hoặc là !
- 6. Tại sao mã IL được tạo bắt đầu bằng Nop?
- 7. PHP - Ký hiệu & trước biến trong vòng lặp foreach
- 8. Tại sao php: // cắt đầu vào?
- 9. Kiểm tra xem biến có bắt đầu bằng 'http'
- 10. Tìm tên tệp bắt đầu bằng ký tự gạch dưới
- 11. Blackberry sign signing spam
- 12. Tại sao tất cả tác nhân người dùng của trình duyệt bắt đầu bằng "Mozilla /"?
- 13. Tại sao ký hiệu trong ma trận chiếu opengl
- 14. Tại sao chuỗi bắt đầu bằng khoảng trắng được chuyển đổi bằng:! 'với Ruby/YAML
- 15. Tại sao tính năng này hoạt động? (Php ký hiệu dấu chấm)
- 16. Bắt đầu bằng C
- 17. Chọn tất cả các cột bắt đầu bằng XXX bằng ký tự đại diện?
- 18. Bắt đầu với Java Web - Mức độ phổ biến
- 19. @sign làm gì?
- 20. Single-Sign-On ASP.NET MVC
- 21. Xóa ký tự khỏi chuỗi nếu ký tự bắt đầu bằng ký tự đó?
- 22. Tại sao ký hiệu (-0) trả về 0?
- 23. Tại sao tôi nhận được lỗi tra cứu ký hiệu?
- 24. Tại sao dịch vụ đơn giản này không bắt đầu?
- 25. Tại sao TaskFactory.StartNew Task không bắt đầu ngay lập tức?
- 26. Tại sao không mongrel bắt đầu trong Rails 3.2.rc?
- 27. Tại sao bạn sẽ bắt đầu nhiều máy chủ mỏng?
- 28. tycho & jar sign
- 29. DirectoryInfo.getFiles bắt đầu bằng
- 30. Tại sao Path.Combine không ghép nối đúng tên tệp bắt đầu bằng Path.DirectorySeparatorChar?
Bạn trả lời câu hỏi đầu tiên của mình (đó là quy tắc cú pháp) ... Tôi nghĩ bạn muốn hỏi "Tại sao chúng ta phải viết' $ var_name = value; 'và không phải' #var_name = value; 'hoặc' @var_name = giá trị; '"? –
Nó rất có thể đến từ Perl, từ đó các phần của PHP được dựa. –
Có thể nó đến từ các biến shell linux? –