2017-01-02 51 views
2

PHP's setcookie documentation函數簽名是有沒有一種方法可以將「httpOnly」參數傳遞給PHP的setcookie函數,而無需傳遞所有「額外」參數?

bool setcookie (string $name [, string $value = "" [, int $expire = 0 [, string $path = "" [, string $domain = "" [, bool $secure = false [, bool $httponly = false ]]]]]]) 

如果我只是想設置$name$value$httponly PARAMS,並允許默認生效爲其他PARAMS。我仍然需要查找所有其他可選參數的默認值並設置它們以「達到」參數$httponly?例如:

<?php 
setcookie('double_track', '1234567890', 0, '', '', false, true); 
             ^^^^
             (do I have to look 
             up and specify these 
             values?)            

有沒有辦法解決這個問題?

回答

2

原生的PHP方法是這樣指定的,你無能爲力。

但是,您可以在本地一繞指定自己的包裝方法:現在

function setMyCookie($name, $value, $httpOnly) 
{ 
    setcookie($name, $value, 0, '', '', false, $httpOnly); 
//       ^^^^
//       (specify default values) 
} 

,你可能只需要使用setMyCookie就象這樣:

setMyCookie('double_track', '1234567890', true);

+0

啊是有道理的。如果將'setcookie'函數實現爲接受具有命名參數的對象或關聯數組,可能會更好?例如你設置了一個對象'$ params = [「name」=>「track_1」,「value」=>「2jkj34」,「httponly」=> true];'然後用'setcookie($ params)調用; '在內部,'setcookie'函數可以遍歷數組/對象並使用'case'來比較和設置參數? ... –

+0

大聲笑你可以說,關於大量的PHP功能。 js是geat,因爲這是大多數初始化器的工作原理,但是現在es6允許默認參數可能不再是這種情況了 – chiliNUT

相關問題