Rzutowanie (ang. type casting) w PHP to proces ręcznej zmiany typu zmiennej. PHP jest językiem dynamicznie typowanym, co oznacza, że typy zmiennych są często zmieniane automatycznie. Jednak w praktyce to właśnie ręczne rzutowanie daje kontrolę, stabilność i przewidywalność kodu.
🔹 1. Czym jest rzutowanie?
Rzutowanie to jawna zmiana typu danych.
Przykład:
👉 wynik:
🔹 2. Podstawowe typy rzutowania
PHP wspiera kilka głównych typów:
Rzutowanie
Typ
(int) / (integer)
liczba całkowita
(float) / (double)
liczba zmiennoprzecinkowa
(string)
tekst
(bool)
wartość logiczna
(array)
tablica
(object)
obiekt
🔹 3. Rzutowanie na int
Przykład:
Wynik:
📌 Zasady:
👉 PHP bierze liczby od początku stringa
🔹 4. Rzutowanie na float
Wynik:
🔹 5. Rzutowanie na string
Wynik:
📌 ciekawostka:
🔹 6. Rzutowanie na boolean
🔥 7. RZUTOWANIE TABLIC (ważne!)
➤ string → array
Wynik:
👉 UWAGA: to NIE split!
✔ poprawne rozbicie stringa:
Wynik:
🔥 8. Tablica → string
Wynik:
🔥 9. Rzutowanie tablic asocjacyjnych
Wynik:
🔥 10. object → array
Wynik:
🔥 11. array → object
Wynik:
⚠️ 12. Najczęstsze błędy
❌ 1. Mylenie (array) z explode()
❌ 2. brak kontroli typu API
👉 może być null / string / array
❌ 3. brak castowania w JSON API
lepiej:
🔥 13. RZUTOWANIE W PRAKTYCE (REAL WORLD)
API scraping:
DB safety:
Boolean logic:
🔥 14. PHP + TABLICE (ważny mindset)
W PHP:
tablice są “luźne” → trzeba je normalizować
przykład problemu:
❌ błędnie:
✔ dobrze:
🧠 15. BEST PRACTICE (pro tip)
Zawsze:
przykład:
🚀 PODSUMOWANIE
Rzutowanie w PHP:
✔ daje kontrolę nad danymi
✔ chroni przed bugami API
✔ stabilizuje scraping
✔ zapobiega “losowym typom”
🔹 1. Czym jest rzutowanie?
Rzutowanie to jawna zmiana typu danych.
Przykład:
$value = "123";
$int = (int) $value;👉 wynik:
123 jako integer, nie string🔹 2. Podstawowe typy rzutowania
PHP wspiera kilka głównych typów:
Rzutowanie
Typ
(int) / (integer)
liczba całkowita
(float) / (double)
liczba zmiennoprzecinkowa
(string)
tekst
(bool)
wartość logiczna
(array)
tablica
(object)
obiekt
🔹 3. Rzutowanie na int
Przykład:
$a = "10";
$b = (int) $a;Wynik:
10📌 Zasady:
(int) "10abc" // 10
(int) "abc10" // 0
(int) true // 1
(int) false // 0👉 PHP bierze liczby od początku stringa
🔹 4. Rzutowanie na float
$value = "10.75";
$float = (float) $value;Wynik:
10.75🔹 5. Rzutowanie na string
$value = 123;
$str = (string) $value;Wynik:
"123"📌 ciekawostka:
(string) true // "1"
(string) false // ""🔹 6. Rzutowanie na boolean
(bool) 0 // false
(bool) 1 // true
(bool) "" // false
(bool) "0" // false
(bool) "abc" // true🔥 7. RZUTOWANIE TABLIC (ważne!)
➤ string → array
$data = "php,java,go";
$arr = (array) $data;Wynik:
["php,java,go"]👉 UWAGA: to NIE split!
✔ poprawne rozbicie stringa:
$data = "php,java,go";
$arr = explode(",", $data);Wynik:
["php", "java", "go"]🔥 8. Tablica → string
$arr = ["php", "java", "go"];
$str = implode(",", $arr);Wynik:
"php,java,go"🔥 9. Rzutowanie tablic asocjacyjnych
$data = (array) "test";Wynik:
[0 => "test"]🔥 10. object → array
$obj = (object) [
"name" => "John",
"age" => 30
];
$arr = (array) $obj;Wynik:
[
"name" => "John",
"age" => 30
]🔥 11. array → object
$arr = [
"name" => "John",
"age" => 30
];
$obj = (object) $arr;Wynik:
$obj->name; // John
$obj->age; // 30⚠️ 12. Najczęstsze błędy
❌ 1. Mylenie (array) z explode()
(string) "a,b,c" → (array) = NIE działa jak split❌ 2. brak kontroli typu API
$val = $response['data'];👉 może być null / string / array
❌ 3. brak castowania w JSON API
$price = $data['price'];lepiej:
$price = (float) ($data['price'] ?? 0);🔥 13. RZUTOWANIE W PRAKTYCE (REAL WORLD)
API scraping:
$salary = (int) ($job['salary'] ?? 0);
$title = (string) ($job['title'] ?? '');DB safety:
$id = (int) $request->input('id');Boolean logic:
$isActive = (bool) $user['active'];🔥 14. PHP + TABLICE (ważny mindset)
W PHP:
tablice są “luźne” → trzeba je normalizować
przykład problemu:
$input = "php,java,go";❌ błędnie:
(array) $input✔ dobrze:
explode(",", $input)🧠 15. BEST PRACTICE (pro tip)
Zawsze:
$value = (type) ($source ?? default);przykład:
$page = (int) ($request['page'] ?? 1);
$limit = (int) ($request['limit'] ?? 20);🚀 PODSUMOWANIE
Rzutowanie w PHP:
✔ daje kontrolę nad danymi
✔ chroni przed bugami API
✔ stabilizuje scraping
✔ zapobiega “losowym typom”