ゼロパディングの逆バージョン。
$str = '000023'; $result = ltrim($str, '0'); var_dump($result);
上記の場合「23」という結果を得られる。
ゼロパディングの逆バージョン。
$str = '000023'; $result = ltrim($str, '0'); var_dump($result);
上記の場合「23」という結果を得られる。
めも。
var_dump(get_declared_classes()); die();
めも。
var_dump(get_defined_constants()); die();
get_difined_constants()を実行することで、実行時点までに定義された定数の一覧を取得することが出来る。
これはまじで便利。
メモ。
テンプレート内で下記のように記述すればOK。
{php} // PHPコードを記述 {/php}
上記の通り普段通りのPHPコードを「{PHP}…{/PHP}」で囲めばOK。
CakePHPはAppControllerで読み込んだComponent、Helperがそれを継承した子コントローラーのそのものと自動的にマージされる。
しかし継承時、親と子の間に独自で定義したコントローラーを挟んだ場合、独自コントローラー内でのComponent、Helperはマージ対象から外れてしまう。
なので、ユーザーの意図した挙動に修正するために独自コントローラー内で下記変数に少々細工を加える。
App::uses('AppBaseController', 'Controller'); class AppBaseController extends AppController { public $components = ['hogeComp']; // マージ対象の親クラスを変更する protected $_mergeParent = 'AppBaseController'; }
上記の通り、「$_mergeParent」にセットする値を変更することでマージの挙動を変更することが可能。
AppControllerではなく独自で作成したコントローラーを継承(extends)したい場合、下記の通り継承先のファイルにて用意したコントローラーを読み込んでやる必要がある。
App::uses('ControllerClassName', 'Controller');
例。
App::uses('AdminBasesController', 'Controller'); class AdminsController extends AdminBasesController { }
こんな感じ。
apple-touch-iconなどの特殊なmetaタグを出力したい場合などの記述方法。
echo $this->Html->meta('apple-touch-icon-precomposed', '/img/apple-touch-icon-144x144.png', [ 'type'=>'icon', 'size' => '144x144', 'rel'=>'apple-touch-icon-precomposed' ])."\n"; echo $this->Html->meta('apple-touch-icon-precomposed', '/img/apple-touch-icon-114x114.png', [ 'type'=>'icon', 'size' => '114x114', 'rel'=>'apple-touch-icon-precomposed' ])."\n";
こんな感じ。
※第1引数は既知のmetaタグ出ない場合、どこにも出力されない。
array_unshift()だとキーを指定できないので下記のように少々工夫を行う。
$ar = [ 'key1' => 'val1', 'key2' => 'val2', 'key3' => 'val3', 'key4' => 'val4', ]; // いったん配列をひっくり返す $tmp = array_reverse($ar, true); // 配列の最後に要素を追加 $tmp['key0'] = 'val0'; // そしてもっかいひっくり返す $ar = array_reverse($tmp, true);
トリッキーだけどなかなかよさ気。