2016-12-14 138 views
0

我想知道如果我可以在下面的例子中通過一個變量作爲自變量,如:變量作爲自變量

function add_sales($checker){ 
$sales_payload = array(

    'organization_id' => $organization_id, 
    'contact_id' => $contact_id, 
    'status' => 'Open', 
    'subject' => " ".str_replace($strToRemove, "", $_POST['billing_myfield12'])." - ".implode(" ",$checker), 
    'start_date' => date("Y-m-d"), // set start date on today 
    'expected_closing_date' => date("Y-m-d",strtotime(date("Y-m-d")."+ 14 days")), // set expected closing date 2 weeks from now 
    'chance_to_score' => '10%', 
    'expected_revenue' => 0, //set the expected revenue 
    'note' => $_POST['order_comments'], 

    'progress' => array(
    'id'=>'salesprogress:200a53bf6d2bbbfe' //fill a valid salesprogress id to set proper sales progress 
    ), 


    "custom_fields" => [["actief_in_duitsland"=>$value]], 

); 

// add the sales 
$sales = $SimplicateApi->makeApiCall('POST','/sales/sales',json_encode($sales_payload)); 
} 

此函數具有變量$檢查器作爲參數。

我調用函數內部的變量檢查發現它的下一行:

'subject' => " ".str_replace($strToRemove, "", $_POST['billing_myfield12'])." - ".implode(" ",$checker), 

當我調用該函數我這樣做;

$vertalingen_check = array_intersect($product_names , $vertalingen); 
$vertalingen_count = count($vertalingen_check); 

if($vertalingen_count >= 1){ 
add_sales($vertalingen_check); 
}else {} 

這項工作?像這樣傳遞一個變量作爲參數? 我聽到你在想什麼,爲什麼你不要繼續前進,測試一下,看看自己。問題是我無法測試一些複雜的目的。所有我需要知道的是如果這樣的事情是可能的

+1

確定它會工作。 – Yoleth

+0

您爲什麼認爲這可能無效?我在這裏沒有看到任何特別的東西。 – simon

+1

它必須工作,但我不明白你在哪裏傳遞在該函數中使用的其他變量? '$ organization_id' '$ strToRemove' 而且,你在哪裏初始化調用這個函數結束的對象: '$ SimplicateApi' –

回答

1

是的,這是可能的。

對於什麼是值得的,爲了讓答案不僅僅是一個「是」,而是通過以這種方式調用函數來傳遞值。

從功能上來說,這是處理您的用例的好方法。

具體來說,它比使用全局變量更好。

function add_sales(){ 
    global $checker; 
    $sales_payload = array(

全局變量使得你的代碼更難維護,因爲他們引進機制,使您可以影響一個變量的值(也可能是覆蓋正在使用的其他地方變量)。

這比通過引用傳遞它還好。

function add_sales(&$checker){ 
    $sales_payload = array(