intval în PHP

Transformă o valoare în număr întreg.

Sintaxă
intval(mixed $value, int $base = 10): int

Ce face intval

intval citește numărul de la începutul unui text și se oprește la primul caracter care nu se potrivește: "12abc" devine 12, iar "abc" devine 0. Numerele cu zecimale sunt tăiate, nu rotunjite.

Scrierea (int) $valoare face același lucru și este mai des folosită. intval are în plus parametrul $base, pentru texte în altă bază de numerație.

Parametri

Parametru Descriere
$value Valoarea transformată.
$base Opțional. Baza în care este scris textul (de exemplu 16 sau 2). Cu 0, baza se deduce din prefix: 0x, 0b, 0.

Ce returnează

Numărul întreg. Pentru texte fără număr la început returnează 0.

Exemple

Exemplul 1: Transformări uzuale

<?php
var_dump(intval("42"));
var_dump(intval("12abc"));
var_dump(intval("abc"));
var_dump(intval(42.99));
var_dump(intval(" 7 "));
var_dump(intval(true));

Rezultat

int(42)
int(12)
int(0)
int(42)
int(7)
int(1)

Exemplul 2: Alte baze de numerație

<?php
var_dump(intval("ff", 16));
var_dump(intval("0x1A", 16));
var_dump(intval("101", 2));
var_dump(intval("0b11", 0));

Rezultat

int(255)
int(26)
int(5)
int(3)

Exemplul 3: Id dintr-un URL

<?php
$_GET = ["id" => "15; DROP TABLE"];

$id = intval($_GET["id"]);
echo "SELECT * FROM articole WHERE id = $id";

Rezultat

SELECT * FROM articole WHERE id = 15

Greșeli frecvente

  • Te aștepți la rotunjire: intval(2.9) este 2. Folosește întâi round.
  • Folosești intval ca validare. intval("abc") returnează 0 fără nicio eroare. Verifică întâi cu is_numeric sau filter_var.

Comenzi înrudite

  • floatval: Transformă o valoare în număr cu zecimale (float).
  • is_numeric: Verifică dacă o valoare este un număr sau un text care arată ca un număr.
  • round: Rotunjește un număr la cel mai apropiat întreg sau la un număr de zecimale.