PHP vine standard cu multe funcții și constructe. Există, de asemenea, funcții care necesită extensii PHP specifice compilate, altfel vor apărea erori fatale de „funcție nedefinită”. De exemplu, pentru a utiliza funcții de imagine precum imagecreatetruecolor(), PHP trebuie să fie compilat cu suport GD. Sau, pentru a utiliza mysqli_connect(), PHP trebuie să fie compilat cu suport MySQLi. Există multe funcții de bază care sunt incluse în fiecare versiune de PHP, cum ar fi funcțiile șir și variabilele. Un apel la phpinfo() sau get_loaded_extensions() va arăta ce extensii sunt încărcate în PHP. De asemenea, rețineți că multe extensii sunt activate implicit și că manualul PHP este împărțit după extensie. Consultați capitolele de configurare, instalare și extensii individuale, pentru informații despre cum să configurați PHP.
Citirea și înțelegerea prototipului unei funcții este explicată în secțiunea manualului intitulată Cum se citește definiția unei funcții. Este important să ne dăm seama ce returnează o funcție sau dacă o funcție funcționează direct pe o valoare transmisă. De exemplu, str_replace() va returna șirul modificat în timp ce usort() lucrează pe variabila reală transmisă în sine. Fiecare pagină de manual are, de asemenea, informații specifice pentru fiecare funcție, cum ar fi informații despre parametrii funcției, modificări de comportament, valori returnate atât pentru succes, cât și pentru eșec și informații despre disponibilitate. Cunoașterea acestor diferențe importante (dar adesea subtile) este crucială pentru scrierea corectă a codului PHP.
Notă: Dacă parametrii dați unei funcții nu sunt cei așteptați, cum ar fi trecerea unei matrice în care este așteptat un șir, valoarea returnată a funcției este nedefinită. În acest caz, probabil va returna null, dar aceasta este doar o convenție și nu se poate baza pe aceasta. Începând cu PHP 8.0.0, o excepție TypeError ar trebui să fie folosită în acest caz.
Notă: Tipurile scalare pentru funcțiile încorporate sunt anulabile în mod implicit în modul coercitiv. Începând cu PHP 8.1.0, trecerea null a unui parametru de funcție intern care nu este declarat nulă este descurajată și emite o notificare de depreciere în modul coercitiv pentru a se alinia cu comportamentul funcțiilor definite de utilizator, unde tipurile scalare trebuie marcate ca nulabile în mod explicit .
De exemplu, funcția strlen() așteaptă ca parametrul $string să fie un șir care nu poate fi anulat. Din motive istorice, PHP permite trecerea null pentru acest parametru în modul coercitiv, iar parametrul este implicit transformat în șir, rezultând o valoare ""
. În schimb, o TypeError este emisă în modul strict.
<?php
var_dump(strlen(null));
// "Depreciat: trecerea null
la parametrul #1 ($string) de tip șir este depreciată" începând
cu PHP 8.1.0
// int(0)
var_dump(str_contains("foobar",
null));
// "Depreciat: trecerea null
la parametrul #1 ($needle) de tip șir este depreciată" începând
cu PHP 8.1.0
// bool(adevărat)
?>
Sursa: PHP Manual, licența CC BY 3.0. Traducere și adaptare: Nicolae Sfetcu
Lasă un răspuns