はじめに
未経験から実務経験2か月ちょっとを経て、1つのサイトを完成させることができたので(もちろん色々な人の手助けあってですが)、今後に生かすインプットと自分の備忘録としてPHP、JavaScript・jQuery、HTML・CSSの3つに分けて記録していきます。
この記事では、PHP(FWのEthna含む)について書いていきます。
なお、身につけた技術は随時、記録・更新していきます。
他の記事については、下記のリンク先からご覧ください。
別の記事のリンク
PHP
foreach
//$test_listは多次元配列
foreach($test_list as $key=>$value){
$test_list['user'] = $value['user'];
}
$this->af->setApp('test',$test);
多次元配列(配列に配列を持つもの)の$test_list
を$value
で置き換えることで、本来は$test_list[$key]['user']
を$value['user']
で取り出すことができる。
[キー]の部分をforeachが0,1,2~と当てはめているイメージ。
最後にsetAppとすれば呼び出し時、{{foreach from=$app.test_list item=value key=key}}
で呼び出せる。
itemにforeachと同じvalue、keyにkeyで呼び出し時も$value.user(PHPは['user'])、配列のキーも$key
で呼び出せる。
$test_list = array('name1_'.$key,'name2_'.$key<中略>);
foreach($test_list as $form_name){
//配列のエラー処理
}
普通の連想配列である$test
の中身を一つずつエラー検証するために利用。
上記の処理なら'name1_'.$key
としているので、name1_0、name1_1~に該当する複数の値に対してもエラーチェックすることができる。
explode
//$test_listは多次元配列
$tel = explode('-',test_list[$key]['tel']); //'-'を基準に文字列を分割
$test_list[$key]['tel1'] = $tel[0];
$test_list[$key]['tel2'] = $tel[1];
$test_list[$key]['tel3'] = $tel[2];
explode(引数1、引数2、引数3)。
引数1:区切り文字(separator)
引数2:文字列(string)
引数3:戻り値として返す、配列の最大要素数(delimiter)
上記により、-で文字が区切られ、電話番号であれば、3つの配列を$tel
は与えられる。
よって一つ目を呼び出すときには、$tel[0]
と指定する。
変数定義
class Web_Form_FormAdd extends Web_ActionForm
{
protected $form = array(
'test' => array(
'type' => VAR_TYPE_STRING,
'name' => 'テスト',
'required' => true,
),
<中略>
}
値の定義。ethnaでは、DBでのテーブル設計と同じように値を定義したり、required 属性をつけることができる。
trueでエラーが起きたらSmartyのプラグインで作成したfunction message.phpのエラーメッセージを表示させる。
最後に
まとめることでなんとなく理解していた箇所をクリアに理解することができました。
まだ全然書ききれていないので、随時更新します。
今後もアウトプットした分だけインプットするよう心掛けていきます。