誰かが知っていますか、PHPやPerlなどのスクリプト言語の「ドル記号表記」の背後にある実際の理由は何ですか? Pythonの作成者は$variable
が役に立ちませんでした。なぜPHPとPerlがshift-4を頻繁に押すように強制しますか?スクリプト言語のドル記号 - なぜですか?
答えて
これが主な理由であるかどうかわかりませんが、PHPが識別マーカーを持つ変数を持っていない場合は、次のことはできません。
echo "Welcome back $name, we last saw you on $date";
更新:
ことも可能variable variableと呼ばれるものを作成します。可変変数の有用性は議論の余地がありますが、私はそれらを定期的に使用する人はお勧めしません。
を(OK、Perlであなたが何とか$scalar
、@array
と%hash
を区別してそれを説明することができますが、まだそれが正常にそこに回避することができ、型は明示的である必要はありません)ように解析するとき、彼らはそれを使用する変数他のものと容易に区別することができます。
「他のもの"あなたはおそらくキーワードを意味しますが、おそらく20個のキーワードがありますので、_them_と他のものとを区別するのもかなり簡単です:) –
@JakubM。それは言語に依存します - 例えばperlです。 260以上のキーワード、phpはおそらく少ないですが、関数と他のシンボル(ライブラリ/モジュールからインポートされたものと、定義できるもの)との間に潜在的な衝突があります。また、 'map'や' command'のような言葉には、明示的な意味はありません(私は変数に入れたデータ構造ですか、関数か、シェル組み込み/実行可能ですか?) – shalomb
Perlの変数の設計目標の1つは、組み込み関数、予約語、制御フローワードなどと視覚的に区別できるようにすることでした。 Perlに慣れていない人には、すべての手がかりはラインノイズのように見えるかもしれません。しかし、Perlに堪能な人にとっては、 "sigils"と呼ばれるように、コードを読みやすく理解しやすくします。 Perl5のsigilのタイプは、アクセスしている基礎データに応じて変わります。スカラーは$、配列は@、ハッシュは%です。
しかし、$hash{key}
がハッシュに保持されているスカラー値を参照しているという追加のビジュアルキューがあります。 $
sigilはスカラーを示し、{}
の角かっこは、われわれがハッシュに索引付けしていることを示しています(例として)。配列にインデックスする場合、$array[0]
のようになります。$
は、角括弧で明示された配列内に保持されているスカラー値にアクセスしていることを示しています。 @array[1, 2, 3]
が表示されたら、配列から要素のリストを取得していることを即座に視覚的に通知します(大括弧はまだ配列から取得していることを示しています) 。それはアレイスライスです。ハッシュスライスは@hash{qw/ this that the other/}
です。だからもう一度@
はリストを探していると言い、中括弧はハッシュからそれらを取得していることを示しています。後ろ括弧なしで@
または%
が表示されたら、配列全体またはハッシュ全体を取得しています。
手がかりはすぐに第2の性質になります。
Perl6は少し異なり、熟練したPerl5ユーザーが数日慣れていきます。 ;)
ここで、件名に良いWikipediaの記事があります:視覚的なガイドとは別にSigil (Computer Programming)
は、シギルは簡単に、あまりにも他のものを作ります。逆参照および補間などが含まれる。補間のようなもののためにもっと複雑な演算子が使われているかもしれませんが、変数がどこで終わり、隣接する単語の文字が続くかを明確にするために必要な場合もありますが、難しいことを可能にしながら簡単なものを簡単に保つことが目的でした。
Natural Language Principles in Perl:言語は、特定のローカル曖昧で逃げることができる理由の
一部が他の曖昧さは、種々の機構によって抑制されることです。英語は数字と語順を使用し、代名詞には大文字小文字のシステムの痕跡があります。「男性は男性を見て、彼らは彼を振り返ります」誰に何をしているのか、その文では完全にはっきりしています。同様に、Perlはその名詞に番号マーカーを持っています。つまり、
$dog
は1つの詐欺師であり、@dog
は(潜在的に)多数です。だから$
と@
は英語では "this"と "these"と少し似ています。 perlの@arrayで
- 1. OleDBとドル記号
- 2. javascriptスクリプトを読んで、なぜそんなに$(ドル記号)が多いのですか?
- 3. Makefileの4ドル記号
- 4. ドル記号の付いたJavaScript関数の宣言
- 5. AngularJSドル記号$()の使用
- 6. jquery.formatCurrency.jsドル記号を外す
- 7. ドル記号のedittext android
- 8. ドル記号とドル記号の後にJQueryでピリオドが続くのは何ですか?
- 9. ドル記号はスカラーで何をする
- 10. ipythonノートブックでドル記号をエスケープする
- 11. C#の正規表現とドル記号
- 12. PHPプロパティのアクセスとドル記号
- 13. RTL言語のDataGridViewのマイナス記号
- 14. スカラー言語の_2記号の意味
- 15. ドル記号でJavaScript文字列
- 16. angularjsのドル($)記号の使用
- 17. 変数の前のドル記号
- 18. jqueryの3倍のドル記号は何ですか?
- 19. Hypersonic DB(HSQLDB)と "$"ドル記号付きスキーマ
- 20. "中国ドル"通貨記号のHTMLタグとは何ですか?
- 21. jqueryでドル記号をマクロと見なすことはできますか?
- 22. ハイチャートでドル記号で負の数値をフォーマットする
- 23. スクリプト言語を他の言語に翻訳できますか?
- 24. 号(リンデンスクリプト言語)
- 25. Windowsスクリプト言語
- 26. コンパイルされた言語やスクリプト言語が好きですか?
- 27. スクリプト言語のBlackberry開発ですか?
- 28. ウェブサービスタスクフロー記述言語
- 29. Javaの世界であなたが好むスクリプト言語(JVMのスクリプト言語)とは何ですか?
- 30. OData記述言語
コンテキストに応じてスカラことができます(これは、配列の長さを返します) – Bruce
あなたはルビーを試してみる必要があります:) – Sairam
これはhttp://stackoverflow.com/questions/3073812前に頼まれました/ why-php-variables-with-with-sign-symbol – dpp