Ce face is_resource
Resursele sunt legături către ceva din afara PHP: un fișier deschis, un stream, o conexiune. is_resource returnează true doar dacă resursa este încă deschisă. După fclose returnează false.
În PHP 8, multe extensii au înlocuit resursele cu obiecte (de exemplu curl_init returnează un obiect CurlHandle, iar imagecreate un obiect GdImage). Pentru ele is_resource returnează false.
Parametri
| Parametru | Descriere |
|---|---|
$value |
Valoarea verificată. |
Ce returnează
true dacă valoarea este o resursă deschisă, altfel false.
Exemple
Exemplul 1: Un fișier deschis și închis
<?php
$f = fopen("php://memory", "r");
var_dump(is_resource($f));
fclose($f);
var_dump(is_resource($f));
echo gettype($f);
Rezultat
bool(true)
bool(false)
resource (closed)
Exemplul 2: Verificare înainte de închidere
<?php
$f = @fopen("lipsa.txt", "r");
if (is_resource($f)) {
fclose($f);
} else {
echo "Fișierul nu a putut fi deschis.";
}
Rezultat
Fișierul nu a putut fi deschis.
Greșeli frecvente
- Verifici cu
is_resourcerezultatul luicurl_initîn PHP 8. Este obiect, nu resursă, deci rezultatul estefalse. Verifică cu!== falsesauinstanceof CurlHandle.
Comenzi înrudite
gettype: Returnează tipul unei variabile, ca text: integer, string, array etc.get_debug_type: Returnează tipul unei valori cu numele moderne (int, float, null) și numele clasei pentru obiecte.is_object: Verifică dacă o valoare este un obiect.