リソース型はいわゆるファイルなどのディスクリプタのことで、C言語ではファイルポインタと呼ばれるものです。
これまでリソース型をintでキャストすればIDが取れたんですが、PHP8で新たにIDを取得する関数が追加されました。
説明を見ると、リソース型をintでキャストして返してるそう。この関数作った意味ある?
最初に言ったように、新しく追加された get_resouce_id() は、リソースをintにキャストして返すだけの関数です。
説明もすぐに終わります。1分もかかりません。
サンプルコードを見れば一目瞭然。
実行結果
もう何も言うことがないくらい意味がわかる。
PHPのドキュメントでは、
『この関数は本質的にはリソースをintにキャストして返す』
『リソースの数値の識別子を識別するための、 型安全な方法を提供します。』
と言ってるので、キャストしないパターンもあるのでしょう。
また、今まで使ってきたintへのキャストでは安全でないことがあったんでしょうか?
そういう不具合に遭遇したことないけど。
まぁ、とりえあず関数が追加されたんだから使っときましょうか、というところです。
そりゃあ、PHP7まで関数を作ってない理由も分かる。キャストすればいいじゃんってなるから。
ちなみに、オープンでもらったリソース型変数はクローズしても値は変わりません。
リソースIDではオープン・クローズの区別はつかないところは注意しておきましょう。