リソース

リソース は特別な変数であり、外部リソースへのリファレンスを保持しています。 リソースは、特別な関数により作成され、使用されます。 これらの関数および対応する全ての リソース 型の一覧については、 付録 を参照ください。

get_resource_type() も参照ください。

リソースへの変換

リソース 型は、オープンされたファイル、データベース接続、 イメージキャンバスエリアのような特殊なハンドルを保持するため、 他の値を リソース に変換することはできません。

リソースの開放

Zend エンジンの一部であるリファレンスカウンティングシステムのおかげで、 ある リソース がもう参照されなくなった場合に (Java と全く同様に)、 そのリソースは自動的に削除されます。この場合、このリソースが作成した 全てのリソースは、ガベージコレクタにより開放されます。 このため、free_result 関数を用いて手動でメモリを開放する必要が生じるのはまれです。

注意: 持続的データベース接続は特別で、ガベージコレクタにより破棄されません。 持続的接続 も参照ください。

add a note

User Contributed Notes 1 note

up
0
mmenzel at it-economics dot de
11 months ago
'stream' is a general resource type and can have specific subtypes (imap, pop, curl ...). Casting from 'stream' to them makes sense alright.

E.g. Making OAUTH2 work for imap, but still use the normal imap_ functions. Just open a ssl:// stream to the IMAP server with stream_socket_client(), send the "AUTHENTICATE XOAUTH2 ..." authentication with valid token and then use the imap_ functions on the casted 'stream' to 'imap' resource.
Not being able to cast from 'stream' to 'imap' makes it necessary to use 3rd party solutions, like php-imap. Doesn't have to be necessary, if the cast would be possible.
To Top