在 PHP 中,insteadof
關鍵字用于替換數組或對象中的值
<?php
function get_user_name($user_id) {
$users = [
1 => 'Alice',
2 => 'Bob',
3 => 'Charlie'
];
return isset($users[$user_id]) ? $users[$user_id] : 'Unknown User';
}
// 使用 insteadof 關鍵字替換 get_user_name() 函數中的查找操作
function get_user_name_using_insteadof($user_id) {
$users = [
1 => 'Alice',
2 => 'Bob',
3 => 'Charlie'
];
// 使用 insteadof 關鍵字替換 array_key_exists() 函數
// array_key_exists($user_id, $users) 的結果為布爾值
// insteadof 會直接返回對應索引的值,如果不存在則返回默認值 'Unknown User'
return $users[insteadof(array_key_exists($user_id, $users), 'Unknown User')];
}
echo get_user_name(1); // 輸出:Alice
echo get_user_name(4); // 輸出:Unknown User
echo get_user_name_using_insteadof(1); // 輸出:Alice
echo get_user_name_using_insteadof(4); // 輸出:Unknown User
?>
在這個示例中,我們首先定義了一個 get_user_name()
函數,該函數通過查找數組 $users
中的用戶 ID 來獲取用戶名。然后,我們創建了一個名為 get_user_name_using_insteadof()
的新函數,該函數使用 insteadof
關鍵字替換了原函數中的 array_key_exists()
函數。這使得代碼更簡潔,易于閱讀。