PHP変数の前にドル記号を付ける必要があるのはなぜですか?


13

すべてのPHP変数の前にドル記号(例:)を付ける必要があることを理解しています$someValue = 1が、これはなぜですか?なぜこのデザインの選択が行われたのですか?

私が尋ねる理由は、PHP変数がドル記号で始まる必要があると言ったときにガールフレンドがなぜ尋ねたのか、そしてなぜこの構文上の選択が行われたのかわからなかったことに気付きました。

何か案は?


11
PHPの作成者はパーサーの作成方法を知らなかったためです。そのため、識別子を識別するために松葉杖が必要でした。
ThomasX

@ThomasX-あなたはおそらく正しいです...私もCコードベースのファンではありません(イケ)
ベン・デモット

PHPを作成した人だけがこの質問に答えることができると思います。
キアマルノ

1
開発者を奨励することだと思います... $記号を付けるたびに、支払いに近づきます!
カミルクリメック

$this->すべてのクラス変数と関数の前で使用する必要がなかったら、私は幸せです。
クロエ

回答:


8

まあ、私は本当に$$$$の大ファンでもありません(変数のコストは気にしません)。しかし、それはperlから来ています。

perlやphpなどの解釈されたスクリプト言語では、$を使用して変数をすばやく識別および解析します。これは、インタープリターの最適化にすぎません。しかし、間違いなくプログラマー向けの最適化ではありません!


プログラマにとって最適化ではないのはどうしてですか?-私はすぐに変数を識別し、他の構成要素から区別することができます。..
ヨハネス

Larry Wallはかつて変数の前の$が既存のコードを壊さずにPerlを拡張することを容易にしたと言ったと思います。彼は、まだ変数として使用されていない新しいキーワードを追加できます。それはこの記事であるべきですが、ペイウォールの背後にあります:
SLバース-モニカを復活させる

@johannesまた、$がなくてもCの変数をすぐに識別できます。これは、すべてのキーワードと関数の後に括弧があるためです。
JSideris

1
@Bizorke Cのキーワードはおそらく少ない(数えていません)が、PHPには$なしの定数があります。通常はUPERCASEで定数を使用します。そして、すべてのキーワードなどを熟知すれば、この視覚的支援を使用して簡単にアクセスできるようになるかもしれません...しかし、それは好みの問題です。答えに対する私の仮定は、「Perlからコピーされた」および「構文解析がより簡単」とも呼ばれます。歴史的な決定
ヨハネス

@johannes私は$がperlからコピーされたとは言わなかった、私はそれがPerlから来たと言った。PHPはPerlに基づいています。はい、それは好みです。毎回$を入力するのは嫌いです。多くのエディターでは、単語をダブルクリックしても$は選択されません(コピー/貼り付けが遅くなります)。はい、PHPにはCよりもわずかに多くのキーワードがありますが、私の議論はC ++、javaなどにも適用されます。キーワードは一般に覚えやすく、言語間で比較的一貫しています。また、PHPは初心者には向いていません。私は毎日PHP(および他の多くの言語)でプログラムしていますが、$は私を遅くする以外何もしなかったことを伝えることができます。
JSideris

5

PHPは元々、解析され、コンパイルされたCプログラム関数に動的に呼び出されるメタ構文でした。
このようにして、「ウェブ」用の「シェル」プログラムに似ていると考えることができ
ます。

12歳のときに、PHP 3を初めてのプログラミング言語として学習していました。$があれば生活がずっと楽になりました。変数が何であるかは知っていましたが、読んだすべてのソースコードにリマインダーがあることで学習が可能になりました... PHPから始めなければ今日ここにいるかどうかわかりません。

以下に例を示します -> http://www.php.net/manual/en/history.php.php

<!-include /text/header.html->

<!-getenv HTTP_USER_AGENT->
<!-ifsubstr $ exec_result Mozilla->
  ねえ、あなたはNetscapeを使っています!<p>
<!-endif->

<!-sql database select * from table from user = '$ username'->
<!-$ numentries 1以外の場合->
  そのレコードは存在しません<p>
<!-endif exit->
  ようこそ<!-$ user->!<p>
  アカウントに<!-$ index:0->クレジットが残っています。<p>

<!-include /text/footer.html->

2
ドル記号が参考になったことは疑う余地がありませんが、PHPの全体的なシンプルさがそれと関係があるのではないかと思います。私は10代の頃から基本的なJavascriptから始めましたが、おそらく当時のJavascriptの例が非常に単純だったため、変数を学ぶのは非常に簡単だとわかりました。
マットブラウン
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.