src.where.value - gamboamartin/where GitHub Wiki
value
Esta función procesa el valor de entrada, que puede ser un array, una cadena de texto o nulo. Si el valor de entrada es un array, la función busca una clave 'value' y la procesa. La función también maneja casos donde el array está vacío o la clave 'value' no existe. Finalmente, escapa cualquier carácter especial en el valor utilizando addslashes.
Signatura
private function value(array|string|null $data): string|array
Parámetros
$data (array|string|null): El conjunto de datos del cual se obtendrá el valor. Puede ser un array, una cadena de texto o un valor nulo.
Retorna
- string|array: La función devuelve el valor escapado con addslashes si es válido. Si hay algún problema con los datos de entrada, devuelve un array con detalles del error.
Explicación Detallada
-
Inicialización del valor:
-
- Se asigna el valor de $data a $value.
-
Procesamiento del array:
-
- Si $data es un array y contiene la clave 'value', se obtiene y recorta el valor asociado.
-
- Si $data es un array y está vacío, se devuelve un mensaje de error indicando que los datos están vacíos.
-
- Si $data es un array y no contiene la clave 'value', se devuelve un mensaje de error indicando que no existe el valor.
-
Manejo de valores nulos:
-
- Si $value es nulo, se establece como una cadena vacía.
-
Escapado de caracteres especiales:
-
- Utiliza addslashes para escapar caracteres especiales en el valor.
Ejemplos
// Ejemplo 1: $data es un array con la clave 'value'
$data = ['value' => ' valor '];
$resultado = $this->value($data);
echo $resultado; // Imprime: valor
// Ejemplo 2: $data es un array sin la clave 'value'
$data = ['otro_campo' => 'valor'];
$resultado = $this->value($data);
if (is_array($resultado)) {
echo "Error: " . $resultado['mensaje']; // Imprime: Error: Error no existe valor
}
// Ejemplo 3: $data es un array vacío
$data = [];
$resultado = $this->value($data);
if (is_array($resultado)) {
echo "Error: " . $resultado['mensaje']; // Imprime: Error: Error datos vacio
}
// Ejemplo 4: $data es una cadena de texto
$data = 'cadena';
$resultado = $this->value($data);
echo $resultado; // Imprime: cadena
// Ejemplo 5: $data es null
$data = null;
$resultado = $this->value($data);
echo $resultado; // Imprime: (cadena vacía)
Código de la Función
private function value(array|string|null $data):string|array{
$value = $data;
if(is_array($data) && isset($data['value'])){
$value = trim($data['value']);
}
if(is_array($data) && count($data) === 0){
return $this->error->error(mensaje: "Error datos vacio",data: $data, es_final: true);
}
if(is_array($data) && !isset($data['value'])){
return $this->error->error(mensaje:"Error no existe valor",data: $data,es_final: true);
}
if(is_null($value)){
$value = '';
}
return addslashes($value);
}