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
前へ 1 2 3 次へ