PHP
2015年10月21日
知っている方には何のことはないのでしょうけど、「ぐぐれなくて困った案件」として。
PHPでは通常、
VPSでPHPを別途インストールした際、この後者の方法が使えなくなっており、本来PHPプログラムであるものがそのまま出力されたりなど困ったことになった。
その際、最初は「PHP クエスチョン」などでぐぐってみたのだが(「<?php」でぐぐっても「php」とみなされてしまう)それらしい答えは見つからなかった。ではどうしようと次に見たのがPHPの公式マニュアルだったのだが、そこで「言語リファレンス」→「PHP タグ」を開くとちゃんと書いてあった。
PHPでは通常、
<?phpで始まって?>で終わる部分をPHPのプログラムが書かれた部分として実行し、残りの部分(典型的にはHTMLを書く)をそのまま出力するのだが、以前使っていたPHPの設定では、それに加えて<?〜?>でもPHPのプログラムと扱っていたのである。VPSでPHPを別途インストールした際、この後者の方法が使えなくなっており、本来PHPプログラムであるものがそのまま出力されたりなど困ったことになった。
その際、最初は「PHP クエスチョン」などでぐぐってみたのだが(「<?php」でぐぐっても「php」とみなされてしまう)それらしい答えは見つからなかった。ではどうしようと次に見たのがPHPの公式マニュアルだったのだが、そこで「言語リファレンス」→「PHP タグ」を開くとちゃんと書いてあった。
PHP では、短い形式の開始タグ <? も使えます (しかしこれはおすすめしません。というのも、この形式のタグは php.ini で short_open_tag を有効にするか --enable-short-tags オプションつきで PHP を configure した場合でないと使えないからです)。ということで、php.ini中に「
PHP: PHP タグ - Manual
short_open_tag = On」という一行を加えて解決。2008年05月05日
PHPやJavaScript経験者がRubyを始めるとひっかかるかもしれない。
- PHPやJavaScriptでは、「==」よりも「===」の方が同値性を厳しく判断する。
- Rubyでは、「===」よりも「==」の方が同値性を厳しく判断する。
PHPやJavaScriptでは、「==」が「型を変換して比較」、「===」が「型を変換せずに比較」を意味する。
一方Rubyでは、「===」は「右辺のものが、左辺のものに含まれる」ことを示す。例えば「(0..10) === 6」や「/baka/ === "obakasan"」はtrueとなる。もちろん、「A === B」と「B === A」の結果は一般には異なる。
Rubyでは「===」は「∋」(集合の要素の記号)と読み替えたほうがよいかもしれない。
Rubyの場合、型付けがしっかりしている(多くの場合、明示的に型変換を指示しないと型は変換されない)ので、厳しい条件での比較が「==」で事足りるのであろう。ちなみに「===」はcase文で用いられることを想定している模様。
【追記 2008.08.23】
最初は「『==』よりも『===』の方が厳密な比較を行う。」のような書き方をしていたのですが、mrkn氏に「『厳密』って表現は違うのではないか、違うのは『同値性』だ」との指摘を頂きました(Ruby勉強会@札幌-9でのIRCにて)。これを踏まえ修正しました。