Estoy seguro de que hay algo mejor en esto. Cualquier ayuda será apreciada.Argumentos de funciones opcionales de PHP con matriz. ¿Cómo codificar/Mejor forma de codificar?
Quiero pasar una matriz a una función php que contiene el argumento y todos los argumentos son opcionales. Estoy usando el código de encendido y de ninguna manera soy un experto. Debajo está lo que he estado usando hasta ahora:
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 = "";
}
Debe ser un poco cuidadoso haciendo cosas como esta, especialmente si los datos son proporcionados por el usuario, porque es similar a register_globals. –
@Tom Aunque personalmente lo implementaría usando una matriz para almacenar los valores en oposición a la función de ámbito de variable local que usó en su pregunta y utilicé en mi respuesta, podría implementar una comprobación rápida en el ciclo foreach para ignorar cualquier claves suministradas que no están en la matriz $ fields – Inspire
En realidad, pensándolo bien, mi ejemplo itera sobre la matriz de $ fields en lugar de $ postDetailArray, por lo que la verificación de la clave no sería necesaria. – Inspire