揮発性のメモ2

http://d.hatena.ne.jp/iww/

PHPで、配列の最後尾の値を取得する

array_pop() や end() を使うと配列の最後尾の値を取得できる。
ただし、関数の戻り値を使うことは許されないらしい。どちらも配列を参照して配列自体をいじるため、実体が必要だから
https://www.php.net/manual/ja/function.end.php
https://www.php.net/manual/ja/function.array-pop.php

問題なく動く
<?
$list = [0,1,2];
$v = end($list);
print "last is $v\n";
last is 2
ギリ動く
<?
$text = "0,1,2";
$v = end(explode(",", $text));
print "last is $v\n";
PHP Notice:  Only variables should be passed by reference in /tmp/hoge.php on line 4
last is 2

文句は言うが一応動く。 @でも付ければ隠蔽できる

動かない
<?
$v = end([0,1,2]);
print "last is $v\n";
PHP Fatal error:  Only variables can be passed by reference in /tmp/hoge.php on line 3

同じエラーだけど Notice から Fatal に変わってる。