4

ショートカットでこれを行う方法があるように感じます:

$date_array = explode("-", $date);
$day = $date_array[2];

何かのようなもの:

$day = explode("-", $date)[2];

基本的に答えを得て、何かに設定しますか?

思い出せませんが、.=連結などの派手な「=」がたくさんありませんか。そのような他のショートカットはありますか?すべてのショートカットを含む Google の記事が見つからないようです。

$date_array私が正直に欲しいのはだけなのに を作らなければならないのは嫌いで$day、自分のコードが効率的ではないように感じます。

編集: タイトルをより普遍的なものに変更しました。素晴らしいものは何も思いつきません。

4

3 に答える 3

5

変数を一覧表示する

list(,,$day) = explode("-", $date);

list()配列を取り、それを変数に解析します...上で行ったように、項目を空白のままにして、不要な項目をスキップできます。あなたが必要とすることをすべきです。あなたが試していた他のタイプの構文は、php では機能しません (少なくとも私が今まで使用したバージョンでは機能しません)。これは、JavaScript の型表記に近いものです。

興味がある場合に備えて、あなたが試みていることに対する別の解決策があります(説明するための単なる例でない限り)

/// this will give you the current day based on server time
$day = date('d');

/// this will work from an existing Y-m-d date
$day = date('d', strtotime($date)); 

ここで、Ymd 日付文字列をタイムスタンプに変換する方が、文字列を分割して変数を一覧表示するよりも速いかどうかは、速度テストだけでわかります(分割が勝つと思います)。しかし、私にとっては、分割されて忘れ去られた他の配列項目について考えずにはいられないので、上記の方が優れています;)

于 2012-09-12T09:28:23.660 に答える
5

PHP 5.4ページの新機能が言うように、あなたが提案する構文(関数配列の逆参照と呼ばれる)は、そのバージョンで可能になりました。

$day = explode("-", $date)[2];

ただし、これは 5.3 以前では機能しません。

于 2012-09-12T09:30:26.467 に答える
0

php5.4 の後、これを行うことができます。

$day = explode("-", $date)[2];

php5.4 より前は、list.

list(,,$day) = explode("-", $date);
于 2012-09-12T09:31:56.993 に答える