A típuszsonglőrködést automatikus típuskonverziónak is nevezik. A típuszsonglőrködés azt jelenti, hogy két különböző típusú érték ugyanarra a típusra alakul, hogy elvégezhető legyen egy művelet.
$baskets = 5 // int
$apples_per_basket = "3" // string
$baskets * $apples_per_basket
# => 15
Ez történhet automatikusan (lásd a fenti példát), vagy explicit módon, C-stílusú kasztolással:
$apples_per_basket = "3" // string
$my_number = (int) $apples_per_basket // cast string to int
# => 3 // int
A kézi kasztolásnál megengedett típusok: bool, int, float, string, array, object.
A kasztolást leggyakrabban arra használjuk, hogy egy egész számot (int) tizedes törtté (float) alakítsunk, vagy fordítva.
A barátod, Kojo nagy számrajongó. Van egy kis weboldala, ahol a számokkal játszadozhat. Kojo nem valami jó programozásban, ezért segítséget kért tőled.
Két segédmetódust fogsz írni Kojo weboldalának új számjátékaihoz, és egy harmadikat, amely ellenőrzi a felhasználó által megadható bemenetet.
Kojo weboldalán az egyik játék úgy néz ki, mint egy nyerőgép, amelyen két számjegyes kerékcsoport látható. A számjegyek mindegyik csoportja egy-egy számot jelöl. A játék működéséhez Kojónak ismernie kell a két szám összegét.
Írj egy sumUp metódust, amely két tömböt fogad paraméterként.
Mindegyik tömb egy vagy több, 0 és 9 közötti számjegyből áll.
A függvény mindegyik tömböt számként értelmezze, és adja vissza a két szám összegét.
<?php
$lucky_numbers = new LuckyNumbers()
$lucky_numbers->sumUp([1, 2, 3], [0, 7]);
//=> 130
// [1, 2, 3] represents 123 and [0, 7] represents 7.
// 123 + 7 = 130
Az oldalon egy másik játék egy kis kvíz, amelynek a címe „Szerencseszámok”. A felhasználó beírhat egy számot, majd megnézheti, hogy a szám hozzátartozik-e valamilyen titkos sorozathoz vagy mintázathoz. A „szerencseszámok” sorozata vagy mintázata minden hónapban változik, és minden felhasználónak csak korlátozott számú próbálkozása van, hogy kitalálja.
Ebben a hónapban a szerencseszámok azok a számok, amelyek palindromok. A palindromszámok ugyanazok maradnak, ha a számjegyeiket megfordítjuk.
Valósítsd meg az új isPalindrome függvényt, amely egy egész számot fogad paraméterként.
A függvény true-t adjon vissza, ha a szám palindrom, egyébként false-t.
A bemeneti szám mindig pozitív egész szám lesz.
<?php
$lucky_numbers = new LuckyNumbers()
$lucky_numbers->isPalindrome(1441);
//=> true
$lucky_numbers->isPalindrome(123);
//=> false
A weboldal több helyén is vannak beviteli mezők, ahol a felhasználók számokat írhatnak be, és egy gombra kattintva elindíthatnak valamilyen műveletet. Kojo szeretné javítani az oldala felhasználói élményét. Szeretne hibaüzenetet megjeleníteni, ha a felhasználó rákattint a gombra, de a mező érvénytelen bemeneti értéket tartalmaz.
Íme néhány további információ arról, hogyan áll elő egy beviteli mező értéke.
Írj egy validate függvényt, amely paraméterként fogadja a felhasználói bemenetet.
Ha a felhasználó nem adott meg semmilyen bemenetet, a validate a 'Required field' értékkel térjen vissza.
Ha a bemenet nem pozitív, nullától különböző egész számot jelent (a PHP típuskonverziós szabályai szerint), akkor a 'Must be a whole number larger than 0' értéket kell visszaadni.
Minden más esetben feltételezheted, hogy a bemenet érvényes, ekkor a visszatérési érték üres string legyen.
<?php
$lucky_numbers = new LuckyNumbers()
$lucky_numbers->validate('123');
// => ''
$lucky_numbers->validate('');
// => 'Required field'
$lucky_numbers->validate('abc');
// => 'Must be a whole number larger than 0'
Iratkozz fel az Exercism-re, hogy megtanuld és elsajátítsd a(z) PHP nyelvet 11 fogalom121 feladat segítségével, valódi emberi mentorálással, mindez ingyen.