by shigemk2

当面は技術的なことしか書かない

引数のデフォルトを指定する

まあこんなコントローラーがあったとして、

<?php
class UsersController extends AppController {
  // 適当な処理....

  function hoge($foo, $bar) {
    // 処理
  }
}

アクセスは、/users/hoge/foo/bar
みたいな感じなると思うが、上記だとnullを許容しない仕様になってしまっている。
そのため、
/users/hoge//bar
/users/hoge/foo

とかだと、エラーになってしまう。おそらくこんな感じでめっ☆ってされるだろう。

Missing argument 2...
Undefined variable: ...

(debugレベルが0、つまり本番環境だとエラーは出ないが…)

そのため、

<?php
class UsersController extends AppController {
  // 適当な処理....

  function hoge($foo = null, $bar = null) { // 変わったのはココ
    // 処理
  }
}

とすると、nullを許容してくれる仕様になる。