InformáticaProgramación

PHP Practice: comparación de cadea

PHP é focado no manexo boa información. A sintaxe da linguaxe é representado conxunto totalmente funcional de funcións de comparación, procesamento de corda, operadores de comparación.

Calquera algoritmo - unha secuencia de opcións e accións. Pero antes de facer unha selección, precisas algo para comparalo con algo. Liña - o mecanismo de control algoritmo máis amplo, eficaz e práctico. Liña - unha variante da presentación de datos. Un dato - este é o tema principal de "coidado" de calquera algoritmo.

lóxica común "comparison-acción"

En xeral, a lingua tipagem dinámica non hai diferenzas entre os datos, como a liña de comparación PHP eo número non é moi diferente. Number - é tamén unha corda, cando contén só números, punto e non hai un único personaxe que non se usa para representar números en calquera forma (notación matemática).

Se o número kontenkatsii funde automaticamente coa liña, sen preguntas e sen erros ocultos, función, aínda que gettype () dá a 'completo' ou 'dobre'.

Con todo, hai unha diferenza entre o uso de is_int () e is_numeric (). O primeiro dá a verdade, só cando o parámetro é un número enteiro, en segundo lugar, cando calquera número ou cadea de caracteres numéricos (tipo variable é 'corda', pero comprende todos notación matemática proporcionada).

Este é un exemplo simple - un bo exemplo de como unha operadores de comparación de cadea PHP ( '==' '===' ... '='!) Pode presentar moitas sorpresas. As variables poden cambiar o seu tipo, non sempre son números, pero case sempre poden levar á liña. Nun caso extremo - será unha cadea baleira.

Con base no exposto, unha función de comparación de cadea PHP é máis popular. O que é exactamente a escoller, de decidir o creador. Moitas opcións dispoñibles ata expresións regulares.

Os límites da funcional dispoñible

PHP-comparación das dúas liñas é bo "facer" strpos () función - o máis barato, o fiel e opción práctica. Se o resultado da cantidade de función, entón está claro que unha corda é igual a outro ou dunha parte a outra.

Radicalmente oposto, pero tamén absolutamente a visión correcta - o uso de expresións regulares.

Se a función $ cResult = scCheckFileName ($ cStr) dá Certo, entón a liña é o nome do vordovsky ficheiro. Terá só unha opción de expansión '.docx' e hai caracteres no nome: só letras, números e os caracteres "_ ',' - '.

A función pode ser facilmente convertida en outros tipos de ficheiros: $ cPtr = '/^([a-zA-Z...0-9\-\_]{4,239})\.(html|js|css|png|jpg | docx | txt) {1} $ / u '. Esta variante estende o (por exemplo, comparación de cadea PHP aplícase "para cargar ficheiros nun servidor sen posibilidades de erro de entrada") varrido Downloadable liña de intervalo para HTML, JS, css, ...

Usando o strpos () e preg_match () - extremos. Eles non están directamente relacionados coa cuestión do período de comparación. Pero a cuestión do algoritmo - é unha cuestión de usar unha combinación de estilo, o uso de todas as oportunidades para conseguir un resultado fiable e correcta.

PHP Funcional: comparación de cadea

linguaxe Arsenal cordas comparación - un, non só a función de comparación pura, pero tamén unha combinación dunha investigación ou substituto directamente. Non sempre actuar debe coincidir coa comparación, xa que esta non conduce necesariamente a un cambio en calquera liña. Moitas veces ten que escoller un ou outro sector do algoritmo.

Normal PHP variante: executa comparación de cadea función int strcmp (S1, S2).

O resultado da función:

  • 0 - line son iguais;
  • -1 - a primeira cadea é menor que o segundo,
  • 1 - A primeira máis que a segunda fila.

Na práctica, isto significa que parte da primeira liña para a segunda, a partir do cal a función de PHP (liñas de comparación) decide. Unha versión máis limitada de strpos () porque o último caso, é posible coñecer a posición da entrada.

strcmp () función - sensíbel. Se desexa comparar a corda-insensitive, PHP ofrece o seu strcasecmp (). A sintaxe é semellante.

Na práctica, moitas veces obrigados a traballar non con toda a liña, pero só unha parte dela. Para este conxunto de funcións PHP (comparación de cadea) incluído strncmp (S1, S2, N). O terceiro parámetro indica realizar a comparación só N-bytes. O resultado é similar strcmp ().

Arrays, cordas e comparando

Estes son case sempre representados por cordas. Se consideramos os arrays, obxectos ou estruturas de datos, é só diferentes variantes de combinacións dun simple estruturas de cordas.

matrices de cadea e liñas pode ser proporcionada de xeito complementario. Transformación da matriz nunha implode función cadea (array, símbolo), por exemplo: $ margins1 = implode ( '', $ style-> getInnerMargin ()); ... o algoritmo / user ...; $ Margins2 = implode ( '', $ style-> getInnerMargin ()) permite que mesturar toda a posición do obxecto na posición cadea.

Pode, entón, realizar a comparación de cadea PHP, e á vez: $ comprobación = strcmp ($ margins1, $ margins2) e comproba se o algoritmo ou o usuario que algo cambiou (ou non). Se realizar unha comparación do xeito habitual, ten que clasificar os elementos de matriz. Leva máis tempo e é máis complicado.

Obxectos e liña

Mesmo o uso máis espectacular PHP (comparacións de cadea) pode ser aplicado a través de ideas orientadas a obxecto.

A idea moderno das instalacións suxire que teñen propiedades e métodos. Os primeiros son xeralmente representados por números, cordas, matrices e outros obxectos. Estes últimos inclúen frecuentemente técnicas de gravación (put) na liña de recuperación e de liña (obter).

A diferenza de matrices, o obxecto fai o traballo coas súas propias propiedades e interactúa con outros obxectos. Obxecto "competente" en que as súas propiedades son de real valor para o algoritmo do programa no seu conxunto.

Este momento constitúe unha base e oportunidade de gravar durante a gravación dunha cadea só a información necesaria, e na recuperación da liña para dar todas as propiedades de traballo no estado desexado. Normalmente, en calquera obxecto, hai información substanciais e de traballo (tempo). A posta en marcha desta idea permite gardar non só a memoria, espazo en disco, o rexistro da base de datos, pero tamén fai que sexa posible comparar as medias das liñas máis simples e preciso.

Sintaxe e semántica

PHP está desenvolvendo de forma dinámica, ea súa función, tanto en termos de cordas comparando e constantemente mellorada en canto a seu tratamento. Con todo, nada impide que un creador para mover o centro de gravidade na superficie de semántica.

Sen dúbida, a característica é boa, pero o seu uso pode ser trasladado no significado do código en obxectos. Cando o algoritmo é presentado como un sistema de interacción entre obxectos, parece moito mellor que as comparacións de secuencia e accións en secuencia directa, estilo clásico.

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

Copyright © 2018 gl.unansea.com. Theme powered by WordPress.