🤔

PHPドキュメントにある$haystackと$needleって何?

2023/06/18に公開
3

筆者は業務でよくPHPを使用しています。PHPのドキュメントを読んでいると、$haystack$needleという変数名がよく出てきます。
例えば、array_searchのドキュメントには以下のように書かれています。

array_search ( mixed $needle , array $haystack [, bool $strict = FALSE ] ) : mixed

内容を見れば何を表しているのかはわかりますが、なぜこのような変数名になっているのかはわかりませんでした。
そこで、変数名の由来を調べてみました。

haystackとneedleの由来

まずそれぞれの英語の意味を調べてみます。

  • $haystack: 干し草
  • $needle: 針

...干し草と針、この関連性がさっぱりです。そこで単語を繋げて検索してみます。
すると、Bizmates Channelに以下のように書かれていました。

a needle in a haystack
※まるでhaystack(干し草の山)の中からneedle(縫い針)を探すようなもの
という例えです。

a needle in a haystackという英語フレーズがあるようです。
つまり、干し草の山の中から縫い針を探すくらい困難なことと表現できるわけですね。

今回のメソッド(array_search)に当てはめると、以下のように表現できます。

  • $haystack: 干し草の山のような配列
  • $needle: 縫い針のような値

この変数名はわかりやすいかはさておき、由来はわかりました。
そんなに困難なことなのですかね...。

a needle in a haystack を使用した例文

先ほどの記事にかっこいい例文が載っていたので、紹介します。

“That’s like looking for a needle in a haystack.” (それはまるで干し草の山の中から縫い針を探すようなものだ。)

へぇ、かっこいいですね。でも実際にどう言う風に使うのでしょうか。
多分こんな流れで使えます。

A: I can't find my wallet. (財布が見つからないんだ。)
B: That's like looking for a needle in a haystack. (それはまるで干し草の山の中から縫い針を探すようなものだ。)

まとめ

PHPのドキュメントには、$haystack$needleという変数名がよく出てきます。
これらの変数名は、英語フレーズa needle in a haystackからきているようです。

誰かに聞かれた時に、鼻高で話してあげてください(みんな既に知っているのだろうけれど)。

参考

Discussion

Stew EucenStew Eucen

haystack は、拙者がアプリケーションで好く使う変数名でして。意味を再確認する為に検索して、此方の記事に到達しましたでござる。

処で、タイトルや記事中の $heystack$haystack が正しいみたいッス。
編集リクエストがなかったので、返信にて報告でした。