Comment detail

隣り合う二項の差 (Nested Flatten)
配列ポインタを利用
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
<?php
function diff($a){
	while(next($a))
		$b[] = -(prev($a)-next($a));
      
	return $b;
}

$xs = array(3, 1, 4, 1, 5, 9, 2, 6, 5);
print_r(diff($xs));
?>
入力に0が混じっているとそこで止まっちゃいますね…
確かにそうですね。
しかもマニュアルにも警告が出てました。
蛇足なのですが、
 $b[] = -(prev($a)-next($a));
のところ、C/C++だとprevとnextどちらが先に評価されるか不定なのですが
phpってどうなんでしょうね。
マニュアル読んでも被演算子?の評価順序に関しては記述が見つけられなかった。
処理系が限定されてるからいいのかな…

言語仕様が似てるだけに危険だとゴーストが囁くというか…(ちと古い)

Index

Feed

Other

Link

Pathtraq

loading...