No sé de una manera directa de hacer esto que también conserva la conveniencia de
list($func, $field) = explode('|', $value);
Sin embargo, ya que es realmente una lástima no ser capaz de hacer esto, es posible que desee considerar un enfoque indirecto astuto:
list($func, $field) = explode('|', $value.'|');
he añadido a $value
tantos |
s según sea necesario para asegurarse de que explode
producirá al menos 2 elementos de la matriz. Para las variables n
, agregue caracteres de delimitador n-1
.
De esta forma no obtendrá ningún error, conservará la conveniente asignación list
, y los valores que no existan en la entrada se establecerán en la cadena vacía. Para la mayoría de los casos, este último no debería darle ningún problema, por lo que la idea anterior funcionaría.
@Down Voter ¿te importaría explicar por qué? No tengo problemas con la votación negativa si he cometido un error, ¡si pudieras explicar por qué puedo corregir la publicación y también aprender de dónde me he equivocado! Aclamaciones. –
Aún puede obtener un error incluso si 'strpos' devuelve' true'. '$ value = 'casi | perfecto'; $ pos = strpos ($ value, '|'); if ($ pos === true) {list ($ one, $ two, $ three) = explode ('|', $ value); } ' –