Consejos útiles

Primera introducción a las funciones php para principiantes

Pin
Send
Share
Send
Send


Una función es solo un bloque de código que tiene un nombre y parámetros de entrada para el procesamiento que se pueden ejecutar cuando lo necesitamos. Puede parecer que tienen poco sentido de ellos, pero, créanme, cuando comprendan y aprendan a usar las funciones, ¡pueden ahorrar mucho tiempo y escribir código que será mucho más legible!

Aunque el tema de las funciones a menudo se percibe como complicado para los programadores novatos, de todos modos debe conocerlas. Puede llevar mucho tiempo, pero no se rinda, porque las funciones lo ayudarán enormemente en su carrera de programación.

Crea tu primera función php

Cuando crea una función, primero debe darle un nombre, por ejemplo, myCompanyName. Es mejor llamar a funciones con nombres claros que tengan sentido para no confundirse. Lo mismo ocurre con las variables.

La sintaxis para crear una función es bastante obvia y lógica. Primero, debe decirle a PHP que desea crear una función. Esto se puede hacer ingresando la función de palabra clave y el nombre de su función y algunas otras cosas (de las que hablaremos más adelante).

Así es como se ve la declaración de la función myCompanyName:

Nota: El nombre de la función puede comenzar con el signo "_", ¡pero no con un número!
Este es solo el marco de nuestra función, y dentro de él podemos poner cualquier código que queramos. Cuando se llama a la función, se ejecutará. Ver en llaves en el ejemplo anterior "<>"? Estos corchetes determinan dónde debe estar nuestro código de función. La llave de apertura "<" le dice a PHP que el código de la función se está iniciando, y la llave de cierre ">" le dice a PHP que nuestra función ha terminado.

Agreguemos algo simple, como echo.

Eso es todo, bastante simple, ¿verdad? Ahora aprende a llamar a nuestra función.

Llamada de función php

Ahora que ha terminado de codificar la función más simple, es hora de probarla. A continuación se muestra un script simple. Hagamos esto: declare nuestra función y úsela.

Aunque este fue un ejemplo simple, es importante comprender que cualquier descuido puede conducir a un error. Cuando cree una función, siga estas pautas simples.

  • Siempre comience sus funciones con la palabra clave de función.
  • Recuerde que su código de función debe estar entre "<" y ">".
  • Cuando llame a una función, asegúrese de deletrear su nombre correctamente.

Sintaxis de funciones en php

  • La definición de la función es la siguiente:

Los parámetros pueden estar vacíos. El nombre se indica después de la función de palabra requerida. Además, los nombres de las funciones no distinguen entre mayúsculas y minúsculas.

Esto significa que al declarar la función Main () y la función main (), se implica la misma función. Y cuando se llama a uno de ellos, el intérprete dará un mensaje de error:

  • El cuerpo de la función puede contener cualquier código. Incluyendo la definición de otra función. Además, la definición se puede ubicar en cualquier parte del código. Es decir, en php, solo importa la ubicación de la llamada a la función,
  • Una función puede devolver solo un valor, o nada. No es posible devolver más de un valor. En este caso, el tipo del valor de retorno puede ser cualquiera.

Como resultado, 1 será devuelto.

Se pueden realizar múltiples transferencias de valores utilizando la matriz php en la función.
Un ejemplo:

En el cuerpo de la función, se establecen las variables x e y. Luego, utilizando la función incorporada array (), se escriben en la matriz.

El valor de los elementos de la matriz se establece cuando se llama a la función usando list ().

  • La llamada a la función php tiene la sintaxis:

La función regresará 3.

Funciones con parámetros

Otra característica útil es que puede llamar a funciones con parámetros, es decir, pasar información adicional a su código. Nuestra primera función myCompanyName no es muy útil, porque todo lo que puede hacer es imprimir la misma línea.

Sin embargo, si utilizamos los parámetros, ¡podríamos agregar algunos chips adicionales a nuestra función! El parámetro aparece entre paréntesis "()" y parece una variable PHP normal. Creemos una nueva función que cree un saludo personalizado basado en el nombre de la persona, que pasaremos como parámetro.

Ahora, cuando llamamos a la función sayHello, debemos indicar el parámetro (nombre) entre paréntesis, ya que la función se declara con el parámetro y no se puede ignorar.
Si queremos especificar varios parámetros, simplemente los enumeramos al declarar una función, separados por comas, y eso es todo, no se requiere nada más.

Funciones anónimas en php

Las funciones anónimas en php aparecieron recientemente, comenzando con la versión 5.3. En versiones anteriores del lenguaje, su soporte no estaba implementado.

Considere los siguientes ejemplos:

Aquí, se asigna una referencia a una función anónima a la variable func1. Luego, la variable x se inicializa con el valor func1 y se emite usando echo ():

En el ejemplo, la función de función autónoma ($ v) <return $ v> 2,> se llama directamente en la ubicación de definición. Se pasa como el segundo argumento a la función estándar array_filter ().

Valor de retorno de la función php

Además del hecho de que tiene la capacidad de pasar información a una función, también puede devolver un valor en sí mismo. Pero recuerde, una función puede devolver solo un valor, aunque puede ser cualquier cosa: un número entero, un valor booleano real, ¡como desee!

¿Cómo devuelve un valor? Es mejor mirar un ejemplo. Declaramos una función con parámetros, y luego asignamos el resultado a alguna variable, como esta:

Para asignar un valor a una función, se le agrega una declaración return, ¿lo ve? El resultado de sumar dos números se almacena en la variable $ total, y usando return $ total este valor se pasa a la función misma. Luego simplemente lo asignamos a la variable $ myNumber después de llamar a la función mySum con dos parámetros 3 y 4 (estos son los números que deben agregarse).

¡Practica, comprende y tendrás éxito!

Función Mail ()

El conjunto de funciones estándar (integradas) en php es bastante amplio. Muchos de ellos implementan las capacidades básicas de la esfera web.

Una de ellas es la función mail (). Ella envía un mensaje al buzón especificado. Su sintaxis es:

Descripción de los parámetros aceptados:

  • a - dirección del destinatario de la carta. Debe cumplir con el estándar [email protected],
  • asunto - asunto de la carta,
  • mensaje: el mensaje a enviar. Además, cada línea del mensaje no debe contener más de 70 caracteres. Las líneas están separadas por un carácter de nueva línea (n).

Si el mensaje se envía directamente al servidor SMTP desde una máquina basada en Windows, se eliminarán todos los puntos al final de cada línea. Para evitar esto, reemplace todos los puntos individuales con puntos dobles usando el código:

Parámetros opcionales de la función mail ():

  • Additional_headers: se inserta al final de los encabezados del mensaje enviado. Se usa para agregar títulos.

Ejemplo de envío de una carta simple:

Y aquí hay un ejemplo de una forma totalmente funcional para enviar mensajes:

Algunas razones principales por las que no se envía la carta:

  • La carta no contiene un encabezado From adicional. Se establece usando el parámetro opcional adicional_headers. También se puede desactivar de forma predeterminada en el archivo de configuración php.ini. Si el encabezado no está en el código, el intérprete mostrará el siguiente mensaje:

  • Use solo LF (n). Algunos agentes basados ​​en Unix reemplazan automáticamente LF con CRLF (rn),
  • Al implementar la función mail () en Windows, la dirección del destinatario no debe ser de esta forma: Algo [email protected]

Se puede producir una interpretación incorrecta del parámetro al pasarlo al agente de correo para su envío.

  • No se pueden enviar cartas al colocar la llamada mail () en el cuerpo del bucle. La función abre y cierra la conexión al servidor SMTP después de enviar cada carta.

Descripción general de las funciones estándar de PHP

El conjunto estándar php incluye un amplio conjunto de funciones para trabajar con cadenas. Consideramos en detalle varios de ellos:

  • 1) substr (): devuelve parte de la cadena. Sintaxis: string substr (string string, int start [, int length]), donde:
  • string string: la cadena dada.
  • int start: establece el comienzo de la subcadena.
  • int length: el número de caracteres en la subcadena devuelta.

  • 2) strpos () - devuelve la posición de la subcadena en la cadena dada. Usando un parámetro opcional, puede especificar un punto de referencia para la búsqueda. Sintaxis: string strpos (string haystack, string needle [, int offset])

3) strstr (): devuelve una subcadena de una cadena, comenzando con el carácter especificado. Sintaxis: string
strstr (pajar de cuerda, aguja de cuerda)

1. count (): devuelve el número de elementos en la matriz. Sintaxis: int count (var mixta)

2. reset (): establece el puntero de matriz en el primer elemento, devuelve su valor.
Sintaxis: reset (array array)
Un ejemplo:

3. sort (): ordena la matriz en orden ascendente. La función trata cualquier matriz como una lista. Sintaxis: void sort (array array [, int sort_flags])

Para obtener más información sobre todos los valores aceptados de los argumentos de la función, consulte la documentación de php.

1. bindec () - convierte un número binario a decimal. Sintaxis: bindec (string $ binary_string)

2. floor (): redondea un número a uno más pequeño. Sintaxis: piso flotante (valor flotante $)

3. rand (): genera un número aleatorio a partir del rango especificado. Sintaxis: int rand (int $ min, int $ max)

Funciones personalizadas: escribir su primera función

Pienso en qué funciones son y dónde encontrar las listas para usar, le expliqué. ¡Pero lo mejor es que puedes definir las funciones tú mismo! En general, la definición de cualquier función es la siguiente:

La función debe tener un nombre. Todas las funciones deben tener nombres diferentes y el nombre de su función no se puede invocar de la misma manera que la función integrada en PHP. Puede haber cualquier número de argumentos, incluido 0. La función puede devolver algo; para esto, la palabra se escribe antes del resultado volver. Después de eso, la función termina su trabajo. O puede que no regrese, pero, por ejemplo, cambie sus argumentos o muestre información en la pantalla. Las funciones se nombran de la misma manera que las variables: camelCase. Escribí más sobre esto aquí: https://webshake.ru/post/726. Debes nombrarlos de la misma manera significativa: lo que hace la función es escribir en el nombre.

Veamos un ejemplo de creación de una función simple en PHP. Deje que tome dos números como entrada y devuelva su suma.

Ok, escribimos una función, ahora puedes llamarla y ver el resultado de su trabajo.

Como vemos, la función funcionó con éxito. Entonces, habiéndolo escrito solo una vez, podemos pasarle diferentes argumentos y obtener diferentes valores. ¡Puede usar la función solo después del código para su definición!

Alcances

Ahora hablemos sobre el alcance de la función. Aquí, de hecho, todo es simple, y todo se reduce al hecho de que las variables dentro de la función no son accesibles desde el exterior y se llaman locales. Una vez completada la función, todas las variables declaradas en su interior dejarán de existir. Al mismo tiempo Las variables fuera de la función se denominan globales y no están disponibles dentro de la función.. Por lo tanto, es posible usar los mismos nombres de variables dentro de la función que fuera, pero al mismo tiempo serán variables completamente diferentes.

Este código está absolutamente funcionando. Aquí están las variables. $ x y $ y función interior getSum viven solos, y las variables con los mismos nombres fuera de la función están separadas, y no se conocen entre sí. Cuando se llama a la función, el valor del argumento pasado se copiará a la variable local y, después de salir de la función, se eliminará este valor. Es decir, aquí cuando llamas getSum simplemente copiamos los valores 3 y 5 en variables locales $ x y $ y. A partir de este momento, las variables externas dejan de existir dentro de la función, y solo conoce sus variables.

Pasando parámetros por referencia

Sin embargo, puede pasar el argumento por referencia. Esto se hace usando el signo & antes del nombre del argumento.

En este caso, el valor no se copia a la variable local. Aparece otra conexión para el mismo valor, pero con un nombre diferente. Y ahora, cambiando el valor de esta variable dentro de la función, cambiaremos el valor original pasado. Veamos un ejemplo de pasar un valor por referencia.

Es decir, para el valor de la variable. $ a otro nombre apareció dentro de la función: $ x. Ahora ambos nombres apuntan al mismo significado. Y si cambiamos el valor de la variable dentro de la función, ¡también cambiará fuera!

Y si pasamos una variable a una función por valor, sin usar un signo &entonces obtendrías un resultado diferente.

Aquí, cuando se llama a la función el valor de la variable $ a simplemente se copió a la variable local $ x. Dentro de la función cambiamos $ xañadiéndole un número 5, y luego se completó la función. Variable local $ x dejó de existir, pero no afectamos la variable $ a.

Las funciones en las que todos los argumentos se pasan por valor se denominan puras. Vale la pena usarlos si es posible, ya que en la gran mayoría de los casos la transferencia de valores por enlaces no es necesaria y conduce al enredo del código.

Comenzando con sugerencias de tipo en PHP 7

En PHP 7, las funciones ahora brindan la capacidad de especificar tipos de argumentos, incluidos los tipos escalares (cadenas, números). En este caso, al pasar un argumento a una función, el valor transferido se convertirá automáticamente en el tipo deseado. Reescribamos nuestra función, dadas las características actuales de PHP 7.

Entonces, ahora al pasar cualquier valor a una función, se convertirán automáticamente a números. Vamos a verlo: inserte una llamada de función var_dump dentro de nuestra función, y ver qué pasa.

Muy esperado, dices. Después de todo, pasamos enteros a la función, e incluso si los argumentos no tuvieran conversiones de tipo, entonces habría habido enteros de la misma manera. Y tendrás razón. Pero intentemos pasar un número de coma flotante como uno de los argumentos.

Después de la ejecución, veremos lo siguiente:

Eso es en el momento en que el argumento llegó a la función, ya era del tipo correcto. Intentemos eliminar la indicación de tipo del argumento:

Ahora no se convertirá un número fraccionario en un entero, y obtendremos otro resultado:

En este curso, siempre utilizaremos la notación de tipo. Esto ayuda a escribir código más riguroso y permite menos errores. Juzgue usted mismo: si trabajamos con un tipo específico, estamos más seguros de cómo funcionará este o aquel código.

Mecanografía fuerte

Como dije, por defecto el valor del argumento se convertirá automáticamente en el tipo especificado. Sin embargo, en PHP es posible especificar explícitamente que el argumento pasado a la función tendrá un tipo específico. Esto se hace usando la directiva:

Está indicado al comienzo del archivo PHP. Nuestro código tomará la siguiente forma:

En este caso, si lo ejecuta ahora, un error con el tipo TypeError.

Como está escrito aquí, el primer argumento pasó a getSum () debe ser de tipo entero, pero aprobado con tipo flotar. Este es un tipeo fuerte en PHP. No lo utilizaremos en el marco de este curso, y aún no han utilizado esta funcionalidad en el desarrollo profesional en PHP. Pero no podía hablar de ella, es muy posible que le pregunten esto durante una entrevista de trabajo. Ahora elimine la línea _declare (estrictatipos = 1), de nuestro código y seguir adelante.

Funciones sin argumentos

Como dije, una función puede no tener argumentos en absoluto. Tal, por ejemplo, es una función estándar rand () - solo devuelve un número aleatorio.

Probémoslo en acción:

Ejecutemos el mismo código nuevamente:

Funciona Y ahora escribamos nuestra propia función, que tampoco toma argumentos, y devuelve el seno de un número aleatorio:

Función dentro de la función

Veamos ahora qué más nos permite hacer funciones. Las funciones en PHP se pueden llamar dentro de otras funciones. Pongamos un ejemplo absolutamente simple. Por ejemplo, necesitamos encontrar la suma de los cosenos de dos números. Escribimos una función para esto:

Aquí usamos la función cos () de la biblioteca estándar dentro de nuestra propia función. ¿Es posible llamar a sus propias funciones desde otras funciones? Si fácil!

Aquí definimos 2 funciones diferentes, y en la segunda comenzamos a usar la primera. Por supuesto, estos ejemplos son bastante artificiales. Y podría pensar que usar funciones aquí es innecesario. Después de todo, simplemente puede reemplazar este código con la siguiente expresión:

Y tendrás toda la razón. Pero doy ejemplos tan fáciles a propósito, para que le sea más fácil comprender cómo escribir funciones en general. Veamos un ejemplo más realista. Escribiremos una función que devolverá el mayor de los dos números transmitidos.

El código de esta función se puede simplificar, porque si $ x no mas $ y, en cualquier caso, le reembolsaremos $ y. Por lo tanto, puedes eliminar el bloque otra cosa:

El resultado será el mismo. Esto sucede, como dije, que tan pronto como se ejecuta la función volver, el valor se devolverá inmediatamente y la función completará su trabajo.

Pasemos el primer argumento a un número mayor:

La primera condición se cumplió y se llamó devolver $ x. Todo arriba devolver $ y El negocio no llegó.
La simplificación es que cuanto menos niveles de anidamiento en el código, más fácil es leer y comprender. ¿Ves cuán estrechamente se cruza todo el material estudiado? En este caso, con el tema de las condiciones en PHP.

Funciones recursivas

Oh, tengo ganas de divertirme ahora. Precaución Si, mientras lee esta sección, sus cerebros comienzan a hervir, vaya a la siguiente lección, la recursión también se puede dominar al final del curso. No te preocupes, en general, si no funciona, no estás solo =)

Entonces aprendimos que puedes llamar a una función dentro de otra. Sin embargo, hay situaciones en las que necesita llamar a la misma función dentro de sí mismo.

Por ejemplo, necesitamos elevar un número a una potencia. Supongamos que tenemos una función específica para esto. Vamos a llamarla poder. Y déjala tomar 2 argumentos:

  • el número a ser elevado
  • степень, в которую нужно возвести.

То есть, для того, чтобы возвести число 2 в третью степень, нам нужно вызвать эту функцию следующим образом:

Согласитесь, что power(2, 3) равносильно 2 * power(2, 3 - 1). То есть мы можем умножить число, возводимое в степень, на вызов этой функции, и уменьшить при этом степень на единицу.

Таким образом, получается, что мы можем вызывать эту же функцию с некоторыми дополнительными операциями.

Тогда для возведения 2 в степень 3 получим:

  1. power(2, 3) = 2 * power(2, 2)
  2. power(2, 2) = 2 * power(2, 1)
  3. power(2, 1) = 2

Число в первой степени равно самому этому числу. Здесь нам нужно остановиться.

Давайте реализуем это с помощью кода:

Sí, la función se llamará a sí misma. Por lo tanto, podemos llegar a la conclusión de que la recursividad es útil cuando el cálculo de una función puede reducirse a su llamada más simple, e incluso más simple, y así sucesivamente, hasta que alcancemos algún valor final en los argumentos (en nuestro ejemplo - números 1). Para comprender cómo funciona todo paso a paso, puede agregar una llamada var_dump al comienzo de la función y ver qué argumentos se le pasan en cada paso.

La conclusión es la siguiente:

Por lo tanto, vemos que la función se llamó tres veces, y vemos cuáles eran los valores de los argumentos en cada llamada. Espero que todo esté claro aquí. Si no es así (y al aprender la recursividad esto sucede con bastante frecuencia), escriba sus preguntas en los comentarios, lo ayudaré. Y también puede analizar paso a paso el curso del programa en una hoja de papel; a menudo también ayuda.

Echemos un vistazo a otro ejemplo de recurrencia para el refuerzo. Por ejemplo, pasaremos algún número a la función $ n, y ella considerará la suma de todos los números de uno a este número. Llamar a esta función getSumOfNumbersFromZero ($ n).

Supongamos que necesitamos calcular la suma de todos los números de 1 antes 5. Entonces la llamada a la función será la siguiente:

Como puede suponer, este desafío se puede imaginar como

O en el caso general

Y así hasta $ n no será igual 1.

Implementemos esto con una función recursiva:

Eso es correcto! Bueno, suficiente recursión, de lo contrario ya puedo oír cómo hierven tus cerebros.
Realmente espero que hayas disfrutado el tutorial. Si es así, me alegrará si lo comparte en las redes sociales o se lo cuenta a sus amigos. Este es el mejor soporte para proyectos. Gracias a quienes hacen esto. Si tiene alguna pregunta o comentario, escríbalo en los comentarios. Y ahora, estamos haciendo nuestra tarea, puede escribir sus decisiones en los comentarios, las revisaré y le diré si todo está correcto. ¡Adiós a todos!

Pin
Send
Share
Send
Send