MW211 EXIT

devlog
CSS/ボタン
2012年03月09日
リンク文字(aタグ)にカーソルをもっていくと、指マークになる。
ボタンについても同様にしてあげるといいかも。
ってことで、それを実現するCSSは「style="cursor:pointer"」だ。

ただし、無効なボタン(「disabled="disabled"」のボタン)の場合は
指マークにしない方が親切だろう。
この場合、CSSを定義しないか「style="cursor:auto;"」を定義する。
分類:CSS
Smarty/textareaタグを使う場合の注意
2012年03月08日
Smartyでtextareaタグ中に初期値を表示する場合に
以下のように続けて書くとダメ。
┌──────────────────────────────────────┐
│<textarea>{$初期値}</textarea>                                              │
└──────────────────────────────────────┘

なぜなら、その値の先頭に空改行が意図的に混じっていた場合、
textareaタグ直後の改行ということで無視されてしまうのだ。

「参照→そのまま更新→参照→そのまま更新→…」を繰り返すと
先頭の空改行がだるま落としの如く一行ずつ減っていってしまう。

これを解消するには、textareaタグの後に必ず改行を入れてあげる。
┌──────────────────────────────────────┐
│<textarea>                                                                  │
│{$初期値}                                                                   │
│</textarea>                                                                 │
└──────────────────────────────────────┘
分類:Smarty
jQuery/クラスの追加削除
2012年03月07日
┌──────────────────────────────────────┐
│$(this).toggleClass("CSS");                                                 │
└──────────────────────────────────────┘
上記と下記は同一。
┌──────────────────────────────────────┐
│if ($(this).hasClass("CSS")) {                                              │
│  $(this).removeClass("CSS");                                               │
│} else {                                                                    │
│  $(this).addClass("CSS");                                                  │
│}                                                                           │
└──────────────────────────────────────┘
分類:jQuery
PHP/奇数・偶数の判定
2012年03月04日
剰余で判定する方法は以下の通り。
┌──────────────────────────────────────┐
│if ($a % 2 == 1) {                                                          │
│  // 奇数です                                                               │
│} else {                                                                    │
│  // 偶数です                                                               │
│}                                                                           │
└──────────────────────────────────────┘

こんな方法もありです。
┌──────────────────────────────────────┐
│if ($a & 1) {                                                               │
│  // 奇数です                                                               │
│} else {                                                                    │
│  // 偶数です                                                               │
│}                                                                           │
└──────────────────────────────────────┘
分類:PHP
PHP/アクセス修飾子の組み合わせ(4)
2012年03月03日
なんともっと簡単にアクセス修飾子の挙動を把握できる方法があった。
生成したクラスを「print_r()」で中身を表示すればよいのだ

例えば、
┌──────────────────────────────────────┐
│class 親 {                                                                  │
│  public $a = '親';  ←★                                                   │
│}                                                                           │
├──────────────────────────────────────┤
│class 子 extends 親 {                                                       │
│  public $a = '子';  ←★                                                   │
│}                                                                           │
└──────────────────────────────────────┘
上記のように同名で変数を定義し、以下のように「print_r()」すると
┌──────────────────────────────────────┐
│$子 = new 子();                                                             │
│print_r((array)$子);                                                        │
└──────────────────────────────────────┘
結果は「Array ( [a] => 子 )」となる。

ではそれぞれのパターンでは?(×はエラー)
┌─────┬─────┬─────┬─────┬─────┐
│  親\子  │(定義なし)│   private│ protected│    public│
├─────┼─────┼─────┼─────┼─────┤
│          │    ×    │[子a]=> 子│[*a] => 子│[a]  => 子│
│(定義なし)│          │          │          │          │
├─────┼─────┼─────┼─────┼─────┤
│          │    ×    │[子a]=> 子│[*a] => 子│[a]  => 子│
│private   │          │[親a]=> 親│[親a]=> 親│[親a]=> 親│
├─────┼─────┼─────┼─────┼─────┤
│          │          │    ×    │[*a] => 子│[a]  => 子│
│protected │[*a] => 親│          │          │          │
├─────┼─────┼─────┼─────┼─────┤
│          │          │    ×    │    ×    │[a]  => 子│
│public    │[a]  => 親│          │          │          │
└─────┴─────┴─────┴─────┴─────┘
分類:PHP
PHP/アクセス修飾子の組み合わせ(3)
2012年03月02日
では、protected修飾子の変数を、親と子で同名で使用した上で
親メソッド、子メソッドのぞれぞれで参照した場合は?
┌──────────────────────────────────────┐
│class 親 {                                                                  │
│  protected $a = '親';  // →必須ではない                                   │
│  public function method親() {                                              │
│    $this->a .= 'です';                                                     │
│  }                                                                         │
│}                                                                           │
└──────────────────────────────────────┘
┌──────────────────────────────────────┐
│class 子 extends 親 {                                                       │
│  protected $a = '子';                                                      │
│  public function method子() {                                              │
│    $this->method親();                                                      │
│    return $this->a;                                                        │
│  }                                                                         │
│}                                                                           │
└──────────────────────────────────────┘
親メソッドで該当する方の変数に「です」をつけてみた場合
やはり子で定義した値に「です」が追加される。
┌──────────────────────────────────────┐
│$子 = new 子();                                                             │
│echo $子->method子();  // →結果は「子です」                                │
└──────────────────────────────────────┘
分類:PHP
PHP/アクセス修飾子の組み合わせ(2)
2012年03月01日
protected修飾子の変数を、親と子で同名で使用した場合の挙動を整理した
┌──────────────────────────────────────┐
│class 親 {                                                                  │
│  protected $a = '親';  // →必須ではない                                   │
│  public function method親() {                                              │
│    return $this->a;                                                        │
│  }                                                                         │
│}                                                                           │
└──────────────────────────────────────┘
┌──────────────────────────────────────┐
│class 子 extends 親 {                                                       │
│  protected $a = '子';                                                      │
│  public function method子() {                                              │
│    return $this->a;                                                        │
│  }                                                                         │
│}                                                                           │
└──────────────────────────────────────┘
親クラスのみを生成した場合は、子クラスは存在しないので当然ながら
親クラスで定義した値が優先される(「$a」の値は「親」)
┌──────────────────────────────────────┐
│$親 = new 親();                                                             │
│echo $親->method親();  // →結果は「親」                                    │
└──────────────────────────────────────┘
子クラスを生成した場合は、子クラスの定義がオーバーライドされるので
子クラスで定義した値が優先される(「$a」の値は「子」)
┌──────────────────────────────────────┐
│$子 = new 子();                                                             │
│echo $子->method親();  // →結果は「子」                                    │
│echo $子->method子();  // →結果は「子」                                    │
└──────────────────────────────────────┘
分類:PHP
PHP/foreachの参照渡しの場合の注意点
2012年02月29日
┌──────────────────────────────────────┐
│foreach ($a as &$value) {                                                   │
│  $value ='z';                                                              │
│}                                                                           │
└──────────────────────────────────────┘
foreachの参照渡しの場合の注意点。

┌──────────────────────────────────────┐
│foreach ($a as &$value) {                                                   │
│  $value ='z';                                                              │
│}                                                                           │
│unset($value)                                                               │
└──────────────────────────────────────┘
unset()すること。

とにかく絶対にだ。
分類:PHP、注意
正規表現/数値(4)
2012年02月28日
2桁数字限定の簡単技。
0~99  →  /^[1-9]?\d$/
1~99  →  /^[1-9]\d?$/

3桁以上になると、これらは使えない
0~999  →  /^[1-9]?\d\d$/  …①
1~999  →  /^[1-9]\d\d?$/

①で「01」が通ってしまうのだ。
分類:正規表現
PHP/value属性のないPOSTの内容
2012年02月25日
┌──────────────────────────────────────┐
│<input type="hidden" name="キー" value="値"/>                               │
└──────────────────────────────────────┘
name属性とvalue属性を設定して、POSTでsubmitすれば
「$_POST['キー'] = '値'」が送信される。

name属性がない場合、例えばid属性とかだった場合は、「$_POST」は送信されない。
┌──────────────────────────────────────┐
│<input type="hidden" id="キー" value="値"/>                                 │
└──────────────────────────────────────┘

では、(name属性はあるのに)value属性がない場合、どうなるのか?
┌──────────────────────────────────────┐
│<input type="hidden" name="キー"/>                                          │
└──────────────────────────────────────┘
「$_POST['キー'] = ''」が送信される。
つまり、そのname属性で送信はされる。
ただ中身は、NULLと思いきや「''」(空文字)なんだね。
分類:PHP
前へ 1 … 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 … 156 次へ