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);
    }