is_resource în PHP

Verifică dacă o valoare este o resursă deschisă, de exemplu un fișier deschis cu fopen.

Sintaxă
is_resource(mixed $value): bool

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_resource rezultatul lui curl_init în PHP 8. Este obiect, nu resursă, deci rezultatul este false. Verifică cu !== false sau instanceof 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.