Jestem pewien, że jest lepiej. Każda pomoc zostanie bardzo doceniona.PHP opcjonalne argumenty funkcji z tablicą. Jak kodować/Lepszy sposób kodowania?
Chcę przekazać tablicę do funkcji php zawierającej argument, a wszystkie argumenty są opcjonalne. Używam inicjatora kodu i nie jestem ekspertem. Poniżej jest to, czego używam do tej pory:
function addLinkPost($postDetailArray) {
if (isset($postDetailArray['title'])) {
$title = $postDetailArray['title']; }
else {
$title = "Error: No Title";
}
if (isset($postDetailArray['url'])) {
$url = $postDetailArray['url'];
} else {
$url = "no url";
}
if (isset($postDetailArray['caption'])) {
$caption = $postDetailArray['caption'];
} else {
$caption = "";
}
if (isset($postDetailArray['publish'])) {
$publish = $postDetailArray['publish'];
} else {
$publish = TRUE;
}
if (isset($postDetailArray['postdate'])) {
$postdate = $postDetailArray['postdate'];
} else {
$postdate = "NOW()";
}
if (isset($postDetailArray['tagString'])) {
$tagString = $postDetailArray['tagString'];
} else {
$tagString = "";
}
Powinieneś być ostrożny przy robieniu takich rzeczy, szczególnie jeśli dane są dostarczane przez użytkowników, ponieważ są podobne do register_globals. –
@Tom Chociaż osobiście zaimplementowałbym to używając tablicy do przechowywania wartości w przeciwieństwie do funkcji zmiennej lokalnej, której używał w swoim pytaniu i użyłem w mojej odpowiedzi, możesz zaimplementować szybkie sprawdzenie w pętli foreach, aby zignorować jakiekolwiek dostarczone klucze, które nie znajdują się w tablicy $ fields – Inspire
Właściwie w drugiej chwili mój przykład iteruje nad tablicą $ fields w przeciwieństwie do $ postDetailArray, więc sprawdzenie klucza nie będzie konieczne. – Inspire