型別轉換有時也稱為型別強制轉換。 型別轉換是指將兩個不同型別的值強制轉換成同一型別,以便執行運算。
$baskets = 5 // int
$apples_per_basket = "3" // string
$baskets * $apples_per_basket
# => 15
這可以是隱式進行的(見上例),也可以使用C風格的型別轉型明確進行:
$apples_per_basket = "3" // string
$my_number = (int) $apples_per_basket // cast string to int
# => 3 // int
手動型別轉型允許的型別有:bool、int、float、string、array、object。
最常見的情況是,型別轉型用來把整數(int)轉成浮點數(float),或反過來。
你的朋友 Kojo 非常喜歡數字。 他有一個用來玩數字的小網站。 Kojo 的程式設計功力不太好,所以他請你幫忙。
你將在 Kojo 的網站上為新的數字遊戲打造兩個輔助方法,以及第三個方法來驗證使用者可以輸入的資料。
Kojo 網站上的其中一個遊戲看起來像吃角子老虎機,上頭有兩組帶著數字的轉輪。 每一組數字都代表一個數字。 為了遊戲機制,Kojo 需要知道這兩個數字的總和。
請寫一個方法 sumUp,接受兩個陣列作為參數。
每個陣列由一個或多個 0 到 9 之間的數字組成。
這個函式應該把每個陣列解讀成一個數字,並回傳這兩個數字的總和。
<?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
網站上的另一個遊戲是個叫做「幸運數字」的小測驗。 使用者可以輸入一個數字,然後看看這個數字是否屬於某個秘密的數列或模式。 「幸運數字」的數列或模式每個月都會改變,而每位使用者只有有限的幾次機會可以猜到。
這個月的幸運數字是迴文數字。 迴文數字把位數反轉之後仍然相同。
請實作新的 isPalindrome 函式,接受一個整數作為參數。
如果這個數字是迴文,函式應該回傳 true,否則回傳 false。
輸入的數字一定會是正整數。
<?php
$lucky_numbers = new LuckyNumbers()
$lucky_numbers->isPalindrome(1441);
//=> true
$lucky_numbers->isPalindrome(123);
//=> false
網站上各處都有輸入欄位,讓使用者可以輸入數字,並點擊按鈕來觸發某些動作。 Kojo 想要改善他網站的使用者體驗。 他希望在使用者點擊按鈕、但欄位裡含有無效輸入值時顯示錯誤訊息。
以下進一步說明輸入欄位的值是如何提供的。
請寫一個函式 validate,接受使用者輸入作為參數。
如果使用者沒有提供任何輸入,validate 應該回傳 'Required field'。
如果輸入代表的不是正的非零整數(根據 PHP 型別轉換規則),則應該回傳 'Must be a whole number larger than 0'。
其他情況下你可以假設輸入是有效的,此時回傳值應該是空字串。
<?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'