Trucuri cu tipuri în PHP

Un exemplu de conversie automată în PHP este operația de adăugare „+”. Dacă oricare dintre operanzi sunt float, atunci toți operanzii sunt evaluați ca float, iar rezultatul va fi, de asemenea, float. Dacă operanzii sunt interpretați ca numere întregi, atunci rezultatul va fi un număr întreg. Rețineți că acest lucru NU schimbă tipurile de operanzi înșiși; acest lucru se face numai în timpul fazei de evaluare a operandului.

Dacă ultimele două exemple nu sunt clare, consultați Conversia șirurilor.

Dacă doriți să forțați o variabilă să fie evaluată ca având un anumit tip, consultați Casting de tip. Dacă doriți să schimbați tipul unei variabile, consultațisettype().

Dacă doriți să testați oricare dintre exemplele din această secțiune, puteți utiliza funcțiavar_dump().

Notă:Comportamentul de conversie automată pentru o matrice nu este definit în prezent.

Exemplul anterior pare similar cu următorul, făcând din $a un tablou al cărui prim element conține „f”. Acum luați în considerare:

Deoarece PHP acceptă indexarea în șiruri prin offset folosind aceeași sintaxă ca și indexarea matricei, exemplul de mai sus ar crea o problemă: ar trebui $a să devină o matrice cu „f” ca prim element, sau ar trebui „f” să devină primul caracter al șir $a?

Prin urmare, așa cum este specificat în PHP 3.0.12 și PHP 4.0b3-RC4, rezultatul acestei conversii automate este tratat ca nedefinit. Se discută însă modalități de rezolvare.

Distribuție

Castingul tipului în PHP funcționează la fel ca în C: numele tipului necesar este scris în paranteze înaintea variabilei care este turnată la acest nou tip.

Sunt permise următoarele tipăriri:

  • (int), (întreg) - transformat în întreg
  • (bool), (boolean) - turnare în boolean
  • (float), (dublu), (real) - aruncat pentru a pluti
  • (șir) - turnat în șir
  • (matrice) - turnat în matrice
  • (obiect) - turnare la obiect

Notă:În loc să turnați o variabilă într-un șir, puteți include variabila și între ghilimele duble.

Rețineți că filele și spațiile sunt permise în paranteze, astfel încât următoarele opțiuni sunt echivalente din punct de vedere funcțional:

S-ar putea să nu fie evident acum ce se întâmplă când turnați tipuri de beton.

Când turnați sau forțați o conversie dintr-o matrice într-un șir, rezultatul este cuvântul Array. Când turnați sau forțați o conversie dintr-un obiect într-un șir, rezultatul este cuvântul Object.

Când turnați o variabilă scalară sau șir într-o matrice, variabila va deveni primul element al acelei matrice:

Când turnați o variabilă scalară sau șir într-un obiect, variabila va deveni un atribut al acelui obiect; numele atributului va fi „scalar”: