現: 2016-04-14 (木) 11:07:11 takatsuka[3] [4] | |||
---|---|---|---|
Line 1: | Line 1: | ||
+ | PHP の小技です。 | ||
+ | 小手先テニクックとしてコーディングの役に立つかもしれないものを掲載しています。 | ||
+ | * 文字列でオブジェクト定数 を展開する。 [#v216c54e] | ||
+ | |||
+ | #prettify{{ | ||
+ | class Database | ||
+ | { | ||
+ | const dbName = 'user'; | ||
+ | const column = 'id'; | ||
+ | public function __construct() | ||
+ | { | ||
+ | ・・・ | ||
+ | $query = "CREATE TABLE {self::dbName} ({self::column} INT)"; | ||
+ | ・・・ | ||
+ | } | ||
+ | }; | ||
+ | }} | ||
+ | |||
+ | PHP で、↑のように、文字列定義の中にオブジェクト定数を埋め込む記述が出来ないものか、けっこう調べてみたけど、今は出来ないっぽい。無念。 | ||
+ | |||
+ | ・・・とだいぶ以前ブログで呟いたんですが、とりあえず最近は、 | ||
+ | |||
+ | #prettify{{ | ||
+ | $f = function ($v){ return $v; }; | ||
+ | $query = "CREATE TABLE {$f(self::dbName)} ({$f(self::column)} INT)"; | ||
+ | }} | ||
+ | |||
+ | のように無名関数を使ってお茶を濁しています。 | ||
+ | PHPのバージョンアップで対応してくれるのが一番スマートな気がします。 |
(This host) = https://thinkridge.com