Evitar múltiples declaraciones de IFELSE en PHP [CERRADO] -- php campo con strings camp codereview Relacionados El problema

Prevent multiple ifelse statements in php [closed]


0
vote

problema

Español
cerrado. Esta pregunta es off-topic . Actualmente no está aceptando respuestas.

¿Quieres mejorar esta pregunta? Actualizar la pregunta por lo que es on-topic para el intercambio de pila de revisión de código.

cerrado hace 2 años .

Mejorar esta pregunta

Estoy tratando de descubrir una manera de hacer que mi código sea más legible y se puede mantener. Mientras reescribía un código de espaguetis feo, me topé con esto:

  if($header !== null && $fieldValue === null) {     $errorMessage =  $message . ': row ' . $row . ', header "' . $header . "" "; } elseif($header === null && $fieldValue !== null) {     $errorMessage =  $message . ': row ' . $row . ', field value "' . $fieldValue . "" "; } elseif($header === null && $fieldValue === null && $row === null) {     $errorMessage =  $message . " "; } elseif($header !== null && $fieldValue !== null) {     $errorMessage =  $message . ': row ' . $row . ', header "' . $header . '", value "' . $fieldValue . "" "; }   

Debe ser posible hacer esto más eficiente, pero ¿cómo? ¿Utilizo una declaración de conmutación? Por favor ilumíname.

Original en ingles

I'm trying to figure out a way to make my code more readable and maintainable. While rewriting some ugly spaghetti code, I stumbled across this:

if($header !== null && $fieldValue === null) {     $errorMessage =  $message . ': row ' . $row . ', header "' . $header . "\"\n"; } elseif($header === null && $fieldValue !== null) {     $errorMessage =  $message . ': row ' . $row . ', field value "' . $fieldValue . "\"\n"; } elseif($header === null && $fieldValue === null && $row === null) {     $errorMessage =  $message . "\n"; } elseif($header !== null && $fieldValue !== null) {     $errorMessage =  $message . ': row ' . $row . ', header "' . $header . '", value "' . $fieldValue . "\"\n"; } 

It must be possible to make this more efficient, but how? Do I use a switch statement? Please enlighten me.

     
   
   

Lista de respuestas

0
 
vote
vote
La mejor respuesta
 

prueba algo como este

  save_post4  
 

Try something like this

<?php  function buildErrorMessage($message, $row = null, $header = null, $fieldValue = null) {      if ($row) {         $message .=  ": row {$row}";     }      if ($header) {         $message .=  ", header {$header}";     }      if ($fieldValue) {         $message .=  ", value \"{$fieldValue}\"";     }      return $message; }  // Tests echo buildErrorMessage('one'); echo buildErrorMessage('two', 2); echo buildErrorMessage('three', 3, 'header'); echo buildErrorMessage('four', 4, 'header', 'value'); echo buildErrorMessage('five', null, null, 'value'); 
 
 
       
       

Relacionados problema

11  Optimizando el corrector de anagramas Java (comparar 2 cadenas)  ( Optimizing java anagram checker compare 2 strings ) 
Un anagrama es como una mezcla de las letras en una cadena: pots es un anagrama de detener wilma es un anagrama de ilwma Estoy pasando por el ...

9  Convierta una contraseña a una cadena fonética para usuarios finales  ( Convert a password to a phonetic string for end users ) 
Tanto como lo odio, a veces proporcionar contraseñas a las personas debe hacerse electrónicamente. Cuando hago eso, trato de eliminar cualquier ambigüedad que...

18  Invirtiendo una cadena  ( Reversing a string ) 
Tuve esto como una pregunta de entrevista, y el entrevistador señaló esto. Esto es lo que escribí: //C# Syntax here public string Reverse(string s) { c...

1  Compruebe si dos cadenas son permutación entre sí  ( Check if two strings are permutation of each other ) 
private String sort(String word) { char[] content = word.toCharArray(); Arrays.sort(content); return new String(content); } private boolea...

8  Conversión de STD :: Chrono :: Time_Point to / from std :: string  ( Converting stdchronotime point to from stdstring ) 
Considere estas funciones que permitan convertir checkOnline.sh4 a / FROM checkOnline.sh5 Con un formato Fecha de fecha ". checkOnline.sh6 con uso:...

2  Función para borrar un carácter en una cadena  ( Function to erase a character in a string ) 
void chrrem (char arr[], size_t len, size_t pos) { memmove(arr + pos, arr + (pos + 1), (len - pos) + 1); } Se supone que es simplemente rápido. Borra...

3  Implementación más portátil de Tolower ()  ( More portable tolower implementation ) 
Me estoy desafiando a intentar intentar escribir una función que sea tan eficiente, portátil y a prueba de fallas posible. La función es muy simple y solo con...

6  Las vocales en una cadena están en orden alfabético  ( Vowels in a string are in alphabetical order ) 
Tarea Escriba una implementación que devuelva si un 99887776655544330 tiene vocales (idioma inglés) en orden alfabético (A-Z) o no. Feedback es mi v...

1  Imprima todos los tamaños posibles de subsecuencias de cadena en C  ( Print out all possible sizes of subsequences of string in c ) 
Por ejemplo, dada una cadena "abcdefghijk", quiero que mi función se imprima: a, b, c, d, e, f, g, h, i, j, k. ab, bc, cd, de, ef, fg, gh, hi, ij, jk ab...

10  Función recursiva que genera las permutaciones de una cadena  ( Recursive function that generates the permutations of a string ) 
Estoy buscando una revisión de mi función recursiva que genere las permutaciones de una cadena. ¿Hay mejores formas de hacer esto? var permutations = []; ...




© 2022 respuesta.top Reservados todos los derechos. Centro de preguntas y respuestas reservados todos los derechos