PHP だけ foreach の順番が違う
◆ PHP だけ items, item の順
◆ ほかは item, items の順
◆ 有名どこでは PHP タイプのは他にみつからなかった
◆ ほかは item, items の順
◆ 有名どこでは PHP タイプのは他にみつからなかった
PHP のコードを見ていて 「え これ動く?」 と思った部分がありました
よく見ると問題なかったのですが PHP って foreach 構文で左側がコレクションで右側がそこから取り出した一つ一つが入る変数名なんですよね
他の言語はたいてい左側が代入先の変数で右側に配列などのコレクションを指定します
PHP パターンの言語は他にあるのかなっていくつか調べましたが なさそうでした
Hack は元が PHP 互換なので含んでません
また コレクションに対するメソッドで関数指定のような書き方ができる言語もありますが ループ用構文ではないですし 見た目も結構違ってきますし 関数の引数となると順番的にも自然とそうなるしとかいう理由からここでは扱いません
こういうの
よく見ると問題なかったのですが PHP って foreach 構文で左側がコレクションで右側がそこから取り出した一つ一つが入る変数名なんですよね
他の言語はたいてい左側が代入先の変数で右側に配列などのコレクションを指定します
PHP パターンの言語は他にあるのかなっていくつか調べましたが なさそうでした
Hack は元が PHP 互換なので含んでません
PHP
$items = [2, 5, 7]
foreach ($items as $item) {
var_dump($item);
}
JavaScript
const obj = {x: 1, y: 2}
for (const key in object) {
console.log(key)
}
const items = [2, 5, 7]
for (const item of items) {
console.log(item)
}
Python
items = [2, 5, 7]
for item in items:
print(item)
Perl
my @items = (2, 5, 7)
foreach my $item (@items) {
print $item
}
Ruby
items = [2, 5, 7]
for item in items do
print(item)
end
Lua
items = {2, 5, 7}
for index, item in ipairs(items) do
print(item)
end
C#
var items = new [] {2, 5, 7};
foreach (var item in items) {
System.Console.WriteLine(item);
}
F#
let items = [|2; 5; 7|]
for item in items do
printfn "%d" item
Rust
let items = [2, 5, 7];
for item in items.iter() {
println!("{}", item);
}
C++
int items[] = {2, 5, 7};
for (auto item : items) {
cout << item << endl;
}
D
auto items = [2, 5, 7];
foreach(item; items) {
writeln(item);
}
Swift
var items = [2, 5, 7]
for item in items {
print(item)
}
Kotlin
val items = arrayOf(2, 5, 7)
for (item in items) {
println(item)
}
Scala
val items = Array(2, 5, 7)
for (item <- items) {
println(item)
}
Elixir
items = [2, 5, 7]
for item <- items do
IO.puts(item)
end
Julia
items = [2, 5, 7]
for item in items
println(item)
end
R
items = c(2, 5, 7)
for (item in items) {
print(item)
}
その他
Haskell や Erlang は foreach 系の構文はなさそうでしたまた コレクションに対するメソッドで関数指定のような書き方ができる言語もありますが ループ用構文ではないですし 見た目も結構違ってきますし 関数の引数となると順番的にも自然とそうなるしとかいう理由からここでは扱いません
こういうの
items.forEach(item => {})