在方法參數中強制使用陣列鍵
P粉006977956
P粉006977956 2024-01-29 14:55:32
0
2
506

所以我的類別中有一個方法,它將建立一個新的潛在客戶,其中有一個 $fields 參數,使用者可以在欄位中傳遞該參數。

假設我有以下格式:

$new_pardot = new FH_Pardot();
$new_pardot->create_prospect();

create_prospect() 方法有 $fields 參數,需要傳入一個數組,因此範例如下:

$new_pardot->create_prospect([
    'email' => $posted_data['email'], // Make key mandatory or throw error on method.
    'firstName' => $posted_data['first-name'],
    'lastName' => $posted_data['last-name'],
]);

有沒有辦法讓 $fields 中的 email 金鑰成為強制?使用者需要傳遞 email 金鑰,但他們可以選擇傳遞其他金鑰,如​​上所示。

這裡是範例方法:

public function create_prospect(array $fields)
{
    // Other logic in here.
}

P粉006977956
P粉006977956

全部回覆(2)
P粉019353247

您應該為您的 $posted_data['email']. 建立一個驗證並檢查它是否是必需的。 但如果你想要這種格式,你可以嘗試以下方法:

1- 對電子郵件使用單獨的參數:

public function create_prospect($email,array $fields)
{
    // Other logic in here.
}

2-更好的方法是檢查數組中的電子郵件字段,無論是否有外部函數:

public function create_prospect(array $fields)
{
    if(!array_key_exists("email", $fields)){
        // printing error! => echo 'error' or throw an exception
        return;
     }
}
P粉668146636

您可以採用多種方法中的一種來進行驗證。 兩個明顯的方法是在 create_prospect 函數內進行驗證,或在呼叫 create_prospect 之前/外部進行驗證。

傳統方法是在嘗試建立實體之前進行驗證。它使收集和顯示驗證錯誤比從各個地方拋出驗證訊息更容易。

以內

public function create_prospect(array $fields)
{
    if (!isset($fields['email']) {
        throw new ValidationException('Please provide an email');     
    }

    ... carry on with your work
}

之前/之外

$fields = [
    'email' => $posted_data['email'],
    'firstName' => $posted_data['first-name'],
    'lastName' => $posted_data['last-name'],
];

if (!isset($fields['email']) {
    throw new ValidationException('Please provide an email');     
}

$new_pardot = new FH_Pardot();
$new_pardot->create_prospect($fields);
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!