e コミグループウェア コーディング規約

e コミグループウェア
コーディング規約
平成 25 年 8 月
防災科学技術研究所
改訂履歴
訂番
頁
変更内容
2011 年 11 月
新規作成
承認
渡辺
審査
渡辺
作成
大久保
目次
1 呼称規約 .................................................................... 2
1.1 ファイル名 .............................................................. 2
1.1.1 メインファイル....................................................... 2
1.1.2 パーツ設定用ファイル................................................. 2
1.1.3 パーツ設定以外のファイル ............................................. 2
1.2 DB テーブル名 ............................................................ 2
2 html コーディング規約 ........................................................ 3
2.1 要素全般 ................................................................ 3
2.1.1 h 要素 ............................................................... 3
2.1.2 input 要素 ........................................................... 3
2.1.3 script 要素 .......................................................... 3
2.2 要素内属性 .............................................................. 3
2.2.1 属性全般 ............................................................ 3
2.2.2 ID 属性 .............................................................. 3
2.2.3 class 属性 ........................................................... 4
2.2.4 title 属性 ........................................................... 4
2.2.5 alt 属性 ............................................................. 4
2.2.6 summary 属性 ......................................................... 4
3 CSS コーディング規約 ......................................................... 5
3.1 記述方法の統一........................................................... 5
4 PHP コーディング規約 ......................................................... 6
4.1 命名規則 ................................................................ 6
4.1.1 クラス .............................................................. 6
4.1.2 関数名 .............................................................. 6
4.1.3 変数名 .............................................................. 7
4.1.4 定数 ................................................................ 7
4.2 記述方法の統一........................................................... 7
4.2.1 コメントの記述....................................................... 7
4.2.2 インデント........................................................... 8
4.2.3 クラス .............................................................. 8
4.2.4 制御構文 ............................................................ 9
4.2.5 外部ファイル読み込み................................................ 12
4.2.6 変数の初期化........................................................ 12
4.2.7 文字列 ............................................................. 12
4.2.8 配列 ............................................................... 13
5 JavaScript コーディング規約 ................................................. 15
5.1 外部ファイル化.......................................................... 15
5.1.1 出力方法 ........................................................... 15
I
5.1.2 名前空間 ........................................................... 15
5.2 命名規則 ............................................................... 16
5.2.1 クラス ............................................................. 16
5.2.2 関数名 ............................................................. 17
5.2.3 変数名 ............................................................. 17
5.3 記述方法の統一.......................................................... 18
5.3.1 コメントの記述...................................................... 18
5.3.2 インデント.......................................................... 18
5.3.3 変数 ............................................................... 18
5.3.4 クラス ............................................................. 19
5.3.5 制御構文 ........................................................... 20
5.3.6 文字列 ............................................................. 21
5.3.7 配列 ............................................................... 22
II
1. 呼称規約
1.1. ファイル名
1.1.1. メインファイル
各パーツで使用する php ファイルは、従来のファイル命名規則(block.php)等を使
用せず、module.php を使用する。
1.1.2. パーツ設定用ファイル
パーツ設定用の http リクエストを受け取る php ファイルは、setting.php を使用
する。
1.1.3. パーツ設定以外のファイル
パーツ設定以外の http リクエスト(Ajax 等)を受け取る php ファイルは、get.php
を使用する。
1.2. DB テーブル名
パーツで使用するテーブル名は、他パーツのテーブルと競合を避けるために、mod_モ
ジュール名_項目名とする。
例:掲示板(bbs)のデータテーブル
mod_bbs_data
2
2. html コーディング規約
2.1. 要素全般
XHTML1.0 Strict DTD に準拠する。
文字コードは utf-8 を使用する。
要素・属性名は小文字を使用する。
2.1.1. h 要素
パーツで h 要素を使用する場合は、h3 から使用する。
※ h1,h2 はシステム側で使用している
2.1.2. input 要素
input 要素を使用する際は、label 要素を同時に使用する。
2.1.3. script 要素
html 内に script を記述する際は、コード 2.1 の通り CDATA セクションを用いて
先頭にコメントを入れる。
コード 2.1 script 要素
<script type="text/javascript">
//<![CDATA[
document.write("<p>e コミパーツ</p>");
//]]>
</script>
(例:script タグで JavaScript を記述する場合)
2.2. 要素内属性
2.2.1. 属性全般
align 属性等の非推奨属性は使用しない。
レイアウトは、CSS で実装する。
2.2.2. ID 属性
ID 属性を指定する場合他パーツとの競合を避けるため、コード 2.2 の通りモジュ
ール名_ブロック ID_名称とする。
コード 2.2 ID 属性の設定
<div id="bbs_12345_title" title="掲示板タイトル">掲示板タイトル</div>
(例:掲示板パーツ(bbs)のタイトルに ID 属性を設定)
3
2.2.3. class 属性
class 属性を指定する場合、ID 属性と同様競合を避けるため、コード 2.3 の通り、
モジュール名_名称とする。
コード 2.3 class 属性の設定
<div class="bbs_body" title="掲示板の本文">掲示板の本文</div>
(例:掲示板パーツ(bbs)の本文に class 属性を設定)
2.2.4. title 属性
title 属性が指定可能な要素には必ず付記する。
2.2.5. alt 属性
img 要素には alt 属性を付記する。
2.2.6. summary 属性
table 要素には summary 属性を付記し、簡単な説明を記述する。
4
3. CSS コーディング規約
3.1. 記述方法の統一
記述方法を下記の通り統一する。
・「{」は、セレクタの直後に置く。
・「}」は、次のセレクタ文字列の前の行に置く。
・プロパティの直前には空白 4 文字もしくは 4 タブインデントをする。
・「:」の前後には空白を入れる。
・色コードは(#)で始まる 6 桁のカラーコードで指定する。
コード 3.1 スタイルシート記述
#bbs_12345_title{
font-size : 120%;
color : #cccccc;
}
div.bbs_body{
font-size : 100%;
border : 1px solid #ff0000;
margin : 5px;
}
(例:掲示板パーツ(bbs)に適用するスタイル)
5
4. PHP コーディング規約
4.1. 命名規則
4.1.1. クラス
(1) クラス名
・ パーツレベルでクラスを宣言時、クラス名はコード 4.1 の通り、cls_mod_
モジュール名とする。
コード 4.1 クラスの宣言
class cls_mod_bbs{
// 処理
}
(例:掲示板パーツ(bbs)のクラス宣言)
・ 処理により複数クラスを宣言する場合は、コード 4.2 の通り、cls_mod_モジ
ュール名処理名とする。また、処理名は英語、キャメルケースで記述する。
コード 4.2 複数のクラス宣言
class cls_mod_bbsSetting{
// 処理
}
class cls_mod_bbsData{
// 処理
}
(例:掲示板パーツ(bbs)で複数のクラス宣言)
(2) プロパティ・メソッド
・ private/protected のプロパティ・メソッドには先頭に_(アンダーバー)を
付記する。
4.1.2. 関数名
・ パーツレベルの関数名は、mod_モジュール名_処理名とする。
・ システムレベルの関数名は、sys_処理名とする。
・ 処理名は英語、キャメルケースで記述する。
・ クラス内関数では、mod_を記述しなくてもよい。
コード 4.3 関数名
function mod_bbs_getThread(){
// 処理
}
(例:掲示板パーツ(bbs)でスレッド一覧取得用関数)
6
4.1.3. 変数名
・ 英語、キャメルケースで記述し、先頭 3 桁にはその変数のデータ型を表す文字
(プリフィックス)を、表 4.1 に従って付記する。
表 4.1 プリフィックス一覧
型
プリフィックス
例
文字列型(String)
str
strfileName
整数型(Integer)
int
intelementId
浮動小数点型(Float)
flt
fltmathResult
論理型(Boolean)
bln
blnexecFlag
配列型(Array)
ary
arydataList
クラスインスタンス
cls
clselement
・ "$i"のような変数名を使用できるのは、小さなループ内で使用する場合のみと
する。
ループが 20 行以上のコードになるようなら、そのループ変数にはユニークな名
前を付ける。
4.1.4. 定数
・ すべて大文字で記述し、単語の区切りにはアンダースコアを使用する。
例:モジュールディレクトリの定数
MODULE_BASE_DIRECTORY
4.2. 記述方法の統一
4.2.1. コメントの記述
(1) 関数コメント
・ コード 4.4 の通り、関数宣言の前に説明を記述する
コード 4.4 関数コメント
/**
* 掲示板パーツブロック表示
*
* @param int
$eid エレメント ID(ブロック ID)
*
* @return string ブロックに表示する内容
*/
function mod_bbs_block($eid = 0){
・・・・
}
(例:掲示板パーツ(bbs)ブロック表示関数コメント)
7
(2) 処理コメント
・ 変数代入・処理内容等を適宜記述する。
4.2.2. インデント
・ インデントは空白 4 文字、または 4 タブで行い、ファイル内でどちらかに統
一する。
4.2.3. クラス
(1) アクセス修飾子
・ private/protected/public キーワードはコード 4.5 の通り、プロパティ・
メソッドに必ず記述する。
コード 4.5 クラス内アクセス制御
class cls_mod_bbs{
private $strsiteName = 'e コミ'; // コメントの記述
protected $strsiteUrl = '';
// コメントの記述
/**
* コメントの記述
* ・・・・・・
* ・・・・・・
*/
public function __construct(){
}
/**
* コメントの記述
* ・・・・・・
* ・・・・・・
*/
private function _getSiteName(){
return $this->strsiteName;
}
/**
* コメントの記述
* ・・・・・・
* ・・・・・・
*/
static public function getSiteName(){
return $this->_getSiteName();
}
}
(例:掲示板クラス宣言)
8
4.2.4. 制御構文
(1) if/else/elseif
・ 条件を指定する括弧の前に空白を入れる。また、条件指定の括弧を閉じた後
にも空白を入れる。
・ 括弧で囲まれた条件文の中では、演算子の前後にも空白を入れる。また、条
件の論理的な区切りを明確にするため、条件文の中でも積極的に括弧を使用
する。
・ 開始波括弧は条件文と同じ行に記述する。終了波括弧は常に改行してそれの
みで記述する。
・ 波括弧の中では、空白 4 文字、または 4 タブインデントをする。
コード 4.6 if 制御構文
if ($intnextId !== 2) {
$intnextId = 2;
}
(例:if 制御構文)
・ 条件文が複数ある場合は、後から条件句を追加したり削除したりしたときに
問題が起こりにくくするために、複数行にわけて記述する。その場合は論理
演算子の前で改行し、条件句の開き括弧がそろうように位置を合わせる。
・ 条件部の閉じ括弧と本体の開始波括弧は空白をはさんで同じ行に記述し、イ
ンデント量は制御構文の開始位置と同じにする。
コード 4.7 if 制御構文(複数条件)
if (($strname
&& ($intuserId
|| ($blnexecFlag
) {
$blnsaveFlg =
}
== $strtestName)
== $inttestId)
== true)
true;
(例:if 制御構文(複数条件))
・ elseif あるいは else を含む if 文の決まりは、通常の if と同じとする。
・ if、elseif あるいは else 文では、波括弧を省略せずに記述する。
9
(2) switch
・ 条件を指定する括弧の前に空白をひとつ入れる。 また、条件指定の括弧を
閉じた後にも空白をひとつ入れる。
・ switch 文の中身は、空白 4 文字、または 4 タブインデントをする。
・ 各 case 文の中身は、さらに空白 4 文字、または 4 タブインデントをする。
・ switch 文の default は省略しない。
コード 4.8 switch 制御構文
switch ($intblockId) {
case 1:
break;
case 2:
break;
default:
break;
}
(例:switch 制御構文)
注意:各 case の最後に break や return を記述せず、意図的に次の case に処理
を流すという書き方をする場合は、単なる記述漏れと区別するために、
「意図的
に break を省略した」というコメントを含める。
・ switch 構文は極力使用を避ける。(後述(4)switch 構文を参照)
10
(3) 厳密な比較の使用
・ 比較をする時はコード 4.9 の通り、緩やかな比較(==/!=)を使用せず、厳密
な比較(===/!==)を使用する。
コード 4.9 比較
// 緩やかな比較
$test = 'test';
if ($test == 0) {
// true
//==だと true と判断される
}else{
// false
}
// 厳密な比較
$test = 'test';
if ($test === 0) {
// true
}
else{
// false
// 正常に判断される
}
(例:緩やかな比較と厳密な比較の処理の違い)
(4) switch 構文
・ コード 4.10 の通り、switch 構文が緩やかな比較での判断になるので、極力
使用を避ける。
コード 4.10 switch 構文(緩やかな比較)
$test = 0;
switch ($test) {
case 'abc':
case 'def':
// ここを通過する
break;
default:
//
break;
}
(例:緩やかな比較により想定外の処理が実行される)
11
4.2.5. 外部ファイル読み込み
・ コード 4.11 の通り、無条件で読み込む場合は、require_once()。何かしらの条
件が真だった場合に読み込む場合は、include_once()を使用する。
コード 4.11 外部ファイル読み込み
// require_once
require_once('./file.php');
// include_once
if ( $blnflg ) {
include_once('./file.php');
}
(例:外部ファイル読み込み方法の違い)
4.2.6. 変数の初期化
・ 変数の内容を分かりやすくなり処理速度も向上するため、変数の使用時には、
初期化を行う。
4.2.7. 文字列
(1) 展開
・ 文字列に変数の展開などが含まれない場合は、シングルクォートで囲む。
・ 文字列に変数の展開などが含まれている場合は、ダブルクォートで囲む。
・ 文字列自体にシングルクォートが含まれている場合は、ダブルクォートで囲
む。
(2) 文字列の連結
・ コードを読みやすくするため、"."演算子の前後には常に空白を入れる。
・ 複数行にわたる文字列の場合、2 行目以降の行頭に空白を入れ、各行の"."
演算子が最初の行の"="演算子と同じ位置にする。
コード 4.12 文字の連結
$sql =
.
.
.
"SELECT
"
,
" FROM
" WHERE
`gid`
AS `gid` "
`sitename` AS `sitename`"
`page`
AS `pg` "
`id` = '10001' ";
(例:SQL 文の生成)
12
4.2.8. 配列
(1) 数値添字の配列
・ 添字として負の数を使用しないこと。
・ 添え字の値は 0 から始めるようにする。
・ 数値添字の配列を宣言する場合は、コードを読みやすくするため、 要素を
区切るカンマの後に空白を入れる。
コード 4.13 配列宣言
$arydata = array(1, 2, 3, 'e コミ', 'map');
(例:簡単な配列の宣言)
・ 複数行にまたがる宣言をする場合、コード 4.14 の通り配列の最初の要素を
次の行から始める。その場合は、配列を宣言した位置からさらに空白 4 文字、
または 4 タブインデントした位置で要素をそろえ、それ以降のすべての要素
を同じインデントで記述する。
・ 閉じ括弧はそれのみを行に記述し、インデント量は配列の宣言と同じ位置に
記述する。
・ 要素の追加・削除を容易にする為、区切りカンマは文頭に記述する。
コード 4.14 配列宣言(複数行)
$sampleArray = array(
1, 2, 3, 'Ppfo', 'Studio'
,$a, $b, $c
,56.44, $d, 500
);
(例:複数行にわたる配列の宣言)
13
(2) 連想配列
・ コード 4.15 の通り、通常の配列と同様に要素を区切るカンマの後に空白を
入れる。
・ =>の前後に空白を入れる
コード 4.15 連想配列宣言
$arysample = array('firstKey' => 'firstValue', 'secondKey' => 'secondValue');
(例:簡単な連想配列宣言)
・ 複数行にまたがる宣言をする場合、配列の最初の要素を次の行から始める。
その場合は、配列を宣言した位置から更に一段インデントした位置で要素を
そろえ、それ以降すべての要素を同じインデントで記述する。
・ 閉じ括弧はひとつの行に記述し、インデント量は配列の宣言と同じ位置にす
る。
・ 可読性を高めるため、代入演算子 "=>" の位置をそろえる。
・ 要素の追加・削除を容易にする為、区切りカンマは文頭に記述する。
コード 4.16 連想配列宣言(複数行)
$ arysample = array(
'firstKey' => 'firstValue'
,'secondKey' => 'secondValue'
);
(例:複数行にわたる連想配列の宣言)
14
5. JavaScript コーディング規約
5.1. 外部ファイル化
5.1.1. 出力方法
同一パーツによる競合を防ぐために、各ブロックで読み込みを行い、各ブロック
ID を JavaScript に記述する。そのため、smarty を用いて出力させる。
5.1.2. 名前空間
名前空間を使用する場合、コード 5.1 の通り、個々のブロック ID 毎のファイルの
先頭に、名前空間(*1)を指定する。
*1 JavaScript には名前空間の概念が存在しないため、オブジェクトを代替えとし
て使用する。
コード 5.1 名前空間
var ecom;
if (!ecom){
ecom = {};
}
if (!ecom.mod_bbs<{$eid}>){
ecom.mod_bbs<{$eid}> = {};
}
// <{$eid}>は smarty 変数で出力されるブロック ID
// ここから処理を記述
ecom.mod_bbs<{$eid}>.setting = function(){
・・・・・
}
(例: 掲示板パーツ(bbs)の名前空間)
15
5.2. 命名規則
5.2.1. クラス
(1) クラス名
・ パーツレベルでクラスを宣言時、クラス名は処理名とする。
コード 5.2 クラス宣言
ecom.mod_bbs<{$eid}>.setting = function(){
// 処理
}
(例:掲示板パーツ(bbs)で設定関連クラス宣言)
(2) プロパティ・メソッド
・ private プロパティ・メソッドには先頭に_(アンダーバー)を付記する。
コード 5.3 プロパティ・メソッド宣言
ecom.mod_bbs<{$eid}>.setting = function(){
// 設定クラス
this.numwindowWidth = "width" ; // public 変数(プロパティ)
var _numwindowHeight = "height"; // private 変数(プロパティ)
_getwindowSize = function(){
// ウィンドウサイズ取得メソッド
・・・・・・・
}
}
ecom.mod_bbs<{$eid}>.setting.prototype.getFrameSize = function(){
}
(例:掲示板パーツ(bbs)で設定関連クラス)
16
5.2.2. 関数名
・ コード 5.4 の通り、mod_モジュール名_処理名とし、処理名はキャメルケースで
記述する。
・ 必要によりモジュール名の後にブロック ID を付記する。
・ クラス内関数では mod_を記述しなくてもよい。
・ 式(var func = function(){})として記述する。*
* 文(function func(){})で記述すると、どこに記述されているかに関わらず、ス
コープの一番先頭に移動されるため、function は式で記述する。
コード 5.4 関数名
var mod_bbs_getThread = function(){
// 処理
}
(例:掲示板パーツ(bbs)でスレッド一覧取得用関数)
5.2.3. 変数名
・ キャメルケースで記述し、先頭 3 桁には変数のデータ型を表す文字(プリフィッ
クス)を、表 5.1 に従って付記する。
表 5.1 プリフィックス一覧
型
プリフィックス
例
文字列型(string)
str
strsiteName
数値型(number)
num
numpageId
論理型(Boolean)
bln
blnexecFlag
配列型(Array)
ary
arydataList
・ "i"のような変数名を使用できるのは、小さなループ内で使用する場合のみとす
る。
ループが 20 行以上のコードになるようなら、そのループ変数にはユニークな名
前を付ける。
17
5.3. 記述方法の統一
5.3.1. コメントの記述
(1) 関数コメント
・ コード 5.5 の通り、関数宣言の前に関数の説明を記述する。
コード 5.5 関数コメント
/**
* スレッドタイトルを 20 文字とする
*
* @param string strthreadTitle スレッドタイトル
*
* @return string スレッドタイトルの先頭 20 文字
*/
mod_bbs_block = function(strthreadTitle){
return strthreadTitle.substring(0,20);
}
(例:関数コメント)
(2) 処理コメント
・ 変数代入・処理内容等を適宜記述する。
5.3.2. インデント
・ インデントは空白 4 つ、または 4 タブで行い、ファイル内でどちらかに統一す
る。
5.3.3. 変数
・ 変数宣言には常に var をつける。*
* 宣言時に var を付けなかった場合、その変数はグローバルコンテキストに置
かれ、既存の変数が汚染される可能性がある。また宣言がない場合は、その
変数がどのスコープなのかが分かりづらくなる。
18
5.3.4. クラス
・ JavaScript でのクラスの定義は、いろんな方式があるが、メソッドの実装はプ
ロトタイプを上書きし実装する。
・ コンストラクタは、プロトタイプに実装しコンストラクタ内でメンバ変数を実
装する。
コード 5.6 クラス宣言
// クラス定義
ecom.mod_bbs<{$eid}>.setting = function(){
this.initialize.apply(this, arguments);
}
// コンストラクタ
ecom.mod_bbs<{$eid}>.setting.prototype.initialize = function() {
this.numresNo = 0; //レス番号
};
// メソッド定義
ecom.mod_bbs<{$eid}>.setting.prototype.getThread = function(){
}
(例:メソッドが少ない場合の掲示板設定クラスの宣言)
コード 5.7 クラス宣言
ecom.mod_bbs<{$eid}>.setting = function() {
this.initialize.apply(this, arguments);
}
ecom.mod_bbs<{$eid}>.setting.prototype = {
// コンストラクタ
initialize: function() {
this.numresNo = 0; //レス番号
},
// メソッド定義
getThread: function() {
}
};
(例:メソッドが多い場合掲示板設定クラスの宣言)
19
5.3.5. 制御構文
(1) if/else/elseif
・ 条件を指定する括弧の前に空白を入れる。 また、条件指定の括弧を閉じた
後にも空白を入れる。
・ 括弧で囲まれた条件文の中では、演算子の前後にも空白を入れる。
また、条件の論理的な区切りを明確にするため、 条件文の中でも積極的に
括弧を使用する。
・ 開始波括弧は条件文と同じ行に記述する。終了波括弧は常に改行してそれの
みで記述する。
・ 波括弧の中では、空白 4 文字、または 4 タブインデントする。
コード 5.8 if 制御構文
if (intnextId != 2) {
intnextId = 2;
}
(例:if 制御構文)
・ 条件文が複数ある場合は、後から条件句を追加したり削除したりしたときに
問題が起こりにくくするために、複数行にわけて記述する。その場合は論理
演算子の前で改行し、条件句の開き括弧がそろうように位置を合わせる。
・ 条件部の閉じ括弧と本体の開始波括弧は空白をはさんで同じ行に記述し、イ
ンデント量は制御構文の開始位置と同じにする。
コード 5.9 if 制御構文(複数条件)
if ((intpageId
== intgroupId)
&& (strsiteName
== 'test')
|| (strlastUpdate != '')
) {
$blnresult = 'ok';
}
(例:if 制御構文(複数条件))
・ elseif あるいは else を含む if 文の決まりは、通常の if と同じとする。
・ if、elseif あるいは else 文では、常に波括弧を使用する。
20
(2) switch
・ 条件を指定する括弧の前に空白をひとつ入れる。 また、条件指定の括弧を
閉じた後にも空白をひとつ入れる。
・ 波括弧の中では、空白 4 文字、または 4 タブインデントをする。
・ 各 case 文波括弧の中では、さらに空白 4 文字、または 4 タブインデントを
する。
・ switch 文の default は省略しない。
コード 5.10 switch 制御構文
switch (intblockId) {
case 1:
break;
case 2:
break;
default:
break;
}
(例:switch 制御構文)
注意:各 case の最後に break や return を記述せず、意図的に次の case に処理
を流すという書き方をする場合は、単なる記述漏れと区別するために、
「意
図的に break を省略した」というコメントを含める。
5.3.6. 文字列
(1) 文字列の囲み
・ 文字列は極力シングルクォートで囲む。
(2) 文字列の連結
・ "+"演算子を使用する場合、コードを読みやすくするため、"+"演算子の前後
には常に空白を入れる。
・ 複数行にわたる文字列の場合、2 行目以降の行頭に空白を入れ、各行の"+"
演算子が最初の行の"="演算子と同じ位置にする。
コード 5.11 文字列の連結
$html = '<div class="bbs_title">'
+ '文字の表示'
+ '</div>';
(例:html 文字列生成)
21
5.3.7. 配列
(1) 数値添字の配列
・ 添字として負の数を使用しないこと。
・ 添え字の値は 0 から始めるようにする。
・ コードを読みやすくするため、要素を区切るカンマの後に空白を入れる。
コード 5.12 配列宣言
arydata = new array(1, 2, 3, 'e コミ', 'map');
もしくは
arydata = [1, 2, 3, 'e コミ', 'map'];
(例:配列の宣言)
・ 複数行にまたがる宣言をする場合、配列の最初の要素を次の行から始める。
その場合は、配列を宣言した位置からさらに一段インデントした位置で要素
をそろえ、それ以降のすべての要素を同じインデントで記述する。
・ 閉じ括弧はひとつの行に記述し、インデント量は配列の宣言と同じ位置に記
述する。
・ 要素の追加・削除を容易にする為、区切りカンマは文頭に記述する。
コード 5.13 配列宣言(複数行)
arysampleArray = new array(
1, 2, 3, 'Ppfo', 'Studio'
,56.44, $d, 500
);
(例:複数行にわたる配列の宣言)
22
(2) 連想配列(オブジェクト)
・ 通常の配列と同様に要素を区切るカンマの後に空白を入れる。
・ 代入演算子の前後に空白を入れる。
コード 5.14 連想配列宣言
arysample = {'firstKey'
: 'firstValue', 'secondKey' : 'secondValue'};
(例:連想配列の宣言)
・ 複数行にまたがる宣言をする場合、配列の最初の要素を次の行から始める。
その場合は、配列を宣言した位置から更に一段インデントした位置で要素を
そろえ、それ以降すべての要素を同じインデントで記述する。
・ 閉じ括弧はひとつの行に記述し、インデント量は配列の宣言と同じ位置にす
る。
・ 可読性を高めるため、代入演算子 ":" の位置をそろえる。
・ 要素の追加・削除を容易にする為、区切りカンマは文頭に記述する。
コード 5.15 連想配列宣言(複数行)
$ arysample = {
'firstKey' : 'firstValue'
,'secondKey' : 'secondValue'
};
(例: 複数行にわたる連想配列の宣言)
23