トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS

PHP/文法 の変更点

Top / PHP / 文法

[[PHP]]

*基本情報 [#p45fadc1]
|拡張子|.php|

*コメント記述方法 [#cdbb9770]
-// コメント
-# コメント
-/* コメント */

注意点: //, #は、行末または?>までがコメントになります。

*print, echo[#wf54ea65]
-echo, print共に言語構造なので()が無くても記述できます。
-echoはカンマで区切って連結出力できます。
-2重引用符で囲むと変数展開やエスケープシーケンスを記述できます。${}とかぎ括弧で囲むと変数であることが明確になります。

 echo $a, $b;
 print "Hello ${name}\n"

*型 [#d48ede11]
|型|例|h
|integer|100, 0xff|
|boolean|TRUE, FALSE|
|float|3.14, 1.2e3|
|string|'yes', "Hello!\n"|
|array|array('red', 'blue', 'green')|

-gettype($変数名)で型名文字列が取得できます。gettype(3.14)でdoubleと返りますが、java言語でいうところのfloatと同様の意味です。
-型をチェックするときはis_int($var)やis_string($var)などを用います。
-(型名)でキャストできます。
-変数や関数戻り値の型宣言はありません。

*定数 [#r7e742b1]
定数定義方法
 define("NAME", value);

定義済み定数
|名前|意味|h
|NULL|未定義、NULLが代入されている、unset()されている状態です。小文字のnullも使えます。|
|NULL|未定義を表す値。小文字のnullも使えます。|
|FALSE|偽|
|TRUE|真|
|__FILE__|実行しているスクリプトファイル名|
|__LINE__|実行している行番号|
注意事項:unset(変数名);とすると変数そのものが無くなります。NULLを代入した変数はなくならずに未定義という状態で存在します。



*変数 [#f098eee9]
PHP言語の定義済み変数
|名前|内容|h
|$_SERVER['argv']|スクリプトに渡される引数の配列|
|$_SERVER['argc']|スクリプトに渡される引数の数|
|$_SERVER['PHP_SELF']|ドキュメントルートを基準としたスクリプトの相対パス|

Apache由来の定義済み変数
|名前|内容|h
|$_SERVER['DOCUMENT_ROOT']|ドキュメントルートディレクトリ|
|$_SERVER['HTTP_USER_AGENT']|ユーザエージェント|
|$_SERVER['REMOTE_ADDR']|クライアントのIPアドレス|
|$_SERVER['REMOTE_PORT']|クライアントのポート番号|
|$_SERVER['SCRIPT_FILENAME']|スクリプトの絶対パス|
|$_SERVER['SCRIPT_NAME']|スクリプトの相対パス|
|$_SERVER['SERVER_NAME']|サーバのホスト名|
|$_SERVER['SERVER_PORT']|サーバのポート番号|
|$_SERVER['SERVER_PROTOCOL']|プロトコル名とバージョン|

可変変数
 $foo = 7;
 $varX = "foo";
 print($$varX); // 7



*配列・ハッシュ [#z22570ba]
配列の定義方法
 $arColor = array(
     'red',
     'green',
     'blue');

 $arColor = array();
 $arColor[] = 'red';
 $arColor[] = 'green';
 $arColor[] = 'blue';

 $arColor = array(
     0=>'red',
     1=>'green',
     2=>'blue');

 $arColor = array();
 $arColor[0] = 'red';
 $arColor[1] = 'green';
 $arColor[2] = 'blue';

-print_r($arColor);で確認できます。~
Array ( [0] => red [1] => green [2] => blue )

配列個数を指定して初期化する方法
 $arColor = array();
 $arColor = array_pad($arData, 3, 'white'); // 配列、拡張後の配列個数、設定値

配列初期化時の注意事項
 ×$sum_data[] = array();
 ○$sum_data = array();
 
 ×$sum_data[] = array(0, 0, 0, 0, 0, 0, 0);
 ○$sum_data = array(0, 0, 0, 0, 0, 0, 0);
 
 次の表記は、すでに存在する$sum_data配列へのpushとなります。
 $sum_data[] = array(0, 0, 0, 0, 0, 0, 0);

ハッシュの定義方法
 $arColor = array(
     'red'=>'#ff0000',
     'green'=>'#00ff00',
     'blue'=>'#0000ff');

 $arColor['red'] = '#ff0000';
 $arColor['green'] = '#00ff00';
 $arColor['blue'] = '#0000ff';
-print_r($arColor);で確認できます。~
Array ( [red] => #ff0000 [green] => #00ff00 [blue] => #0000ff )

配列要素の削除および配列インデックス振り直し方法
 $a = array(1 => 'one', 2 => 'two', 3 => 'three');
 unset($a[2]);
 $b = array_values($a); // bは、array(0 => 'one', 1 =>'three')となります



*式 [#yb158315]
次の値はFALSEとなります。
-integerの0
-doubleの0.0
-空の文字列、 および文字列の"0"
-要素の数がゼロである配列
-ゼロを要素とするオブジェクト(PHP 4のみ)
-特別な値 NULL(値がセットされていない変数を含む) 
-空のタグから作成された SimpleXML オブジェクト

*演算子 [#x1985925]
割り算の注意点
~整数を整数で割った場合、常にfloat値となります。

文字列演算子
~ピリオドで文字列の結合が行えます。
 print("foo"."99");
 $strTmp .= "123";

実行演算子
~バッククォートでコマンドを囲うと、その実行結果を文字列として取得できます。
 <?php
     $strTmp = `pwd`;
     print("<pre>".$strTmp."<pre>");
 ?>

エラー制御演算子
~@を関数の先頭に付けると、エラーメッセージが出力されなくなります。
 $fin = @fopen("foo.txt", "r") or die("ファイルが存在しません");


*文字列 [#b189af38]
エスケープシーケンス一覧
|記号|説明|h
|\xnn|16進数表記の1文字|
|\r|キャリッジリターン, CR, 0x0d|
|\n|改行, LF, 0x0a|
|\t|水平タブ|
|\$|ドル記号, PHPでは二重引用符文字列の中で変数を展開できます。|
|\"|二重引用符|
|\\|\自身, 一重引用符文字列の中でも使用可能|
|\'|一重引用符, 一重引用符文字列の中で使用|

ヒアドキュメント
 $str = <<< HERE
 ひとよひとよに
 ひとみごろ
 HERE;
 print("<pre>".$str."<pre>");
ヒアドキュメントの中はパースされます。

*制御構造 [#d6f2baa7]
if, switch, while, do while, for文は、javaと同じです。

 $arColor = array(
     'red'=>'#ff0000',
     'green'=>'#00ff00',
     'blue'=>'#0000ff');
 foreach ($arColor as $value) {
     print($value."<br />");
 }
 foreach ($arColor as $key => $value) {
     print($key."<br />");
 }

*関数 [#ie935f12]
 $g_charForPrint = '*';
 function printChars($iCount) {
     global $g_charForPrint;
     for ($i = 0; $i < $iCount; $i++) {
         print($g_charForPrint);
     }
 }
 printChars(10);

*ライブラリ・インクルードファイル [#ha4338cb]

*クラス [#e2e3884e]