2010-06-19 29 views
32

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 $?

+2

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ị; '"? –

+2

Nó rất có thể đến từ Perl, từ đó các phần của PHP được dựa. –

+0

Có thể nó đến từ các biến shell linux? –

Trả lời

43

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

+3

Tôi nhớ sử dụng $ để đánh dấu các biến chuỗi trong c64 cơ bản. –

+4

@Itay: nhưng đó là hậu tố. – Artelius

+1

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ó. –

8

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.

5

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!

+2

Tại sao bỏ phiếu xuống? lịch sử của tôi có sai không? – Zuul

+7

Ký hiệu đô la cho biết VALUE. – Babiker

+2

PS: Tôi đã không bỏ phiếu cho bạn. – Babiker

8

Đ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.

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