Php-for-c-developers
提供:Dev Guides
C開発者向けのPHP
PHPを考える最も簡単な方法は、HTMLドキュメントに埋め込むことができる解釈されたCです。 言語自体はCによく似ていますが、型指定されていない変数、多数のWeb固有のライブラリが組み込まれ、すべてがお気に入りのWebサーバーに直接接続されている点が異なります。
ステートメントの構文と関数定義はおなじみのはずです。ただし、変数の前には常に$が付き、関数は別個のプロトタイプを必要としません。
ここでは、PHPとCにいくつかの類似点と相違点を記載します。
類似点
- 構文-大まかに言って、PHPの構文はCと同じです。コードは空白を区別せず、ステートメントはセミコロンで終了し、関数呼び出しは同じ構造(my_function(expression1、expression2))、および中括弧(\ {および} )ステートメントをブロックにします。 PHPは、CおよびC ++スタイルのコメント(/* */および//)、およびPerlおよびシェルスクリプトスタイル(#)をサポートしています。
- 演算子-代入演算子(=、+ =、* =など)、ブール演算子(&&、|| 、!)、比較演算子(<、>、⇐、> =、==、 !=)、および基本的な算術演算子(+、-、*、/、%)はすべて、Cの場合と同様にPHPで動作します。
- 制御構造-基本的な制御構造(if、switch、while、for)は、breakおよびcontinueのサポートを含め、Cの場合と同様に動作します。 注目すべき違いの1つは、PHPのスイッチが文字列をケース識別子として受け入れることができることです。
- 関数名-ドキュメントを熟読すると、C関数と同じように見える多くの関数名が表示されます。
違い
- ドル記号-すべての変数は、先頭に$が付いています。 変数は、割り当ての前に宣言する必要はなく、組み込み型はありません。
- タイプ-PHPには、整数(Cのlongに対応)とdouble(Cのdoubleに対応)の2つの数値型しかありません。 文字列の長さは任意です。 個別の文字タイプはありません。
- 型変換-コンパイル時に型はチェックされず、通常は実行時に型エラーも発生しません。 代わりに、変数と値は必要に応じてタイプ間で自動的に変換されます。
- 配列-配列の構文は表面的にはCの配列構文と似ていますが、実装方法は完全に異なります。 実際には連想配列またはハッシュであり、インデックスは数値または文字列のいずれかです。 事前に宣言したり割り当てたりする必要はありません。
- 構造型なし-配列とオブジェクト型が一緒になって不要になるため、PHPには構造がありません。 PHP配列の要素は、一貫した型である必要はありません。
- ポインターなし-テープレス変数も同様の役割を果たしますが、PHPで使用できるポインターはありません。 PHPは変数参照をサポートします。 関数名を変数に格納し、リテラル名ではなく変数を使用して呼び出すことができるという点で、関数ポインターをある程度エミュレートすることもできます。
- *プロトタイプなし-定義が現在のコードファイルまたはインクルードファイルのどこかにある限り、実装を定義する前に関数を宣言する必要はありません。
- メモリ管理-PHPエンジンは実質的にガベージコレクション環境(参照カウント)であり、小さなスクリプトでは割り当てを解除する必要はありません。 新しい文字列やオブジェクトインスタンスなど、新しい構造を自由に割り当てる必要があります。 PHP5では、オブジェクトのデストラクタを定義できますが、空きまたは削除はありません。 デストラクタは、オブジェクトへの最後の参照がなくなると、メモリが回収される前に呼び出されます。
- コンパイルとリンク-PHPスクリプト用の個別のコンパイル手順はありません。
- 許容度-一般的な問題として、PHPはCよりも寛容であり(特にその型システムにおいて)、新しい種類の間違いを回避できます。 予期しない結果は、エラーよりも一般的です。