誰かが知っていますか、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. ドル記号+ Perl?
- 2. どの通貨記号やドル記号
- 3. OleDBとドル記号
- 4. URLにドル記号が必要なbashスクリプトのカール要求
- 5. javascriptスクリプトを読んで、なぜそんなに$(ドル記号)が多いのですか?
- 6. ドル記号の付いたJavaScript関数の宣言
- 7. Makefileの4ドル記号
- 8. AngularJSドル記号$()の使用
- 9. jquery.formatCurrency.jsドル記号を外す
- 10. ドル記号のedittext android
- 11. ドル記号とドル記号の後にJQueryでピリオドが続くのは何ですか?
- 12. XML/XSLTでドル記号をエスケープする
- 13. ドル記号はスカラーで何をする
- 14. ipythonノートブックでドル記号をエスケープする
- 15. ChartJSでy軸のドル記号
- 16. C#の正規表現とドル記号
- 17. RTL言語のDataGridViewのマイナス記号
- 18. VIMの "$"ドル記号区切り記号を隠します
- 19. PHPプロパティのアクセスとドル記号
- 20. スカラー言語の_2記号の意味
- 21. ドル記号でJavaScript文字列
- 22. angularjsのドル($)記号の使用
- 23. putStrLn関数のドル記号の使用
- 24. 変数の前のドル記号
- 25. gnuアセンブリラベルのドル記号の意味
- 26. ドル記号をエスケープするsh -c
- 27. ドル記号、四半分記号、ニッセル記号、ニッケルス記号、およびペニー記号にC#コードセント
- 28. jqueryの3倍のドル記号は何ですか?
- 29. ディレクトリの場所内のドル記号とは何ですか?
- 30. SQLのrails log meanのドル記号$は何ですか?
コンテキストに応じてスカラことができます(これは、配列の長さを返します) – Bruce
あなたはルビーを試してみる必要があります:) – Sairam
これはhttp://stackoverflow.com/questions/3073812前に頼まれました/ why-php-variables-with-with-sign-symbol – dpp