1+
2+ <?php
3+
4+ /*
5+ * EJERCICIO:
6+ * - Crea ejemplos de funciones básicas que representen las diferentes
7+ * posibilidades del lenguaje:
8+ * Sin parámetros ni retorno, con uno o varios parámetros, con retorno...
9+ * - Comprueba si puedes crear funciones dentro de funciones.
10+ * - Utiliza algún ejemplo de funciones ya creadas en el lenguaje.
11+ * - Pon a prueba el concepto de variable LOCAL y GLOBAL.
12+ * - Debes hacer print por consola del resultado de todos los ejemplos.
13+ * (y tener en cuenta que cada lenguaje puede poseer más o menos posibilidades)
14+ *
15+ * DIFICULTAD EXTRA (opcional):
16+ * Crea una función que reciba dos parámetros de tipo cadena de texto y retorne un número.
17+ * - La función imprime todos los números del 1 al 100. Teniendo en cuenta que:
18+ * - Si el número es múltiplo de 3, muestra la cadena de texto del primer parámetro.
19+ * - Si el número es múltiplo de 5, muestra la cadena de texto del segundo parámetro.
20+ * - Si el número es múltiplo de 3 y de 5, muestra las dos cadenas de texto concatenadas.
21+ * - La función retorna el número de veces que se ha impreso el número en lugar de los textos.
22+ *
23+ * Presta especial atención a la sintaxis que debes utilizar en cada uno de los casos.
24+ * Cada lenguaje sigue una convenciones que debes de respetar para que el código se entienda.
25+ */
26+
27+
28+
29+ //Funciones definidas por el usuario
30+ //Simple
31+
32+ function greet (){
33+ print ("Hola mundo " );
34+ }
35+
36+ greet ();
37+
38+
39+ //Con retorno
40+ function ret_greet (){
41+ return "Hola mundo " ;
42+ }
43+
44+ print (ret_greet ());
45+
46+
47+ //Con argumento
48+
49+ function print_greet ($ nombre ){
50+ print ("Hola $ nombre " );
51+ }
52+
53+ print_greet ("Cecilia " );
54+
55+
56+ //Con argumentos
57+ function arg_greet ($ nombre , $ apellido ){
58+ print ("Hola, $ nombre $ apellido " );
59+ }
60+
61+ arg_greet ("Cecilia " , "Porras " );
62+ arg_greet ($ nombre = "Ceciliaa " , $ apellido = "Porras " );
63+
64+
65+ //Con argumento predeterminado
66+ function def_arg_greet ($ nombre ="Martha " ){
67+ print ("Hola, $ nombre " );
68+ }
69+
70+ def_arg_greet ();
71+
72+
73+ //Con argumentos y return
74+ function ret_arg_greet ($ nombre , $ apellido ){
75+ return $ nombre . ' ' . $ apellido ;
76+ }
77+
78+ print (ret_arg_greet ("Cecilia " ,"Porras " ));
79+
80+
81+ //Con retorno de varios valores
82+ function ret_var_greet () {
83+ return ["Cecilia " , "Porras " ];
84+ }
85+
86+ list ($ name , $ lastname ) = ret_var_greet ();
87+ print ($ name );
88+ print ($ lastname );
89+
90+
91+ //Con un numero variable de argumentos
92+ function var_arg_greet (...$ nombres ){
93+ foreach ($ nombres as $ nombre ){
94+ print ("Hola, $ nombre \n" );
95+ }
96+ }
97+
98+ var_arg_greet ("Cecilia " , "Martha " , "Luisa " , "Sofia " );
99+
100+
101+ //Con un numero variable de argumentos con palabras clave
102+ function key_arg_greet ($ args ) {
103+ foreach ($ args as $ clave => $ valor ) {
104+ print ($ clave ." = " . $ valor . "\n" );
105+ }
106+ }
107+
108+ key_arg_greet ([
109+ "nombre " => "Cecilia " ,
110+ "apellido " => "Porras " ,
111+ "edad " => 23
112+ ]);
113+
114+
115+
116+ //Función interna
117+ function external (){
118+ function internal (){
119+ print ("Función interna " );
120+ }
121+ internal ();
122+ }
123+
124+ external ();
125+
126+
127+ //Función de lenguaje
128+ print (strtoupper ("hola mundo " ));
129+ print (gettype ("hola mundo " ));
130+ print (strlen ("hola mundo " ));
131+ print (strrev ("hola mundo " ));
132+ print (str_repeat ("hola mundo " , 3 ));
133+ print (str_replace ("mundo " , "Cecilia " , "hola mundo " ));
134+
135+
136+ //Variable global y local
137+
138+ $ global_variable = "Variable global " ;
139+ print ($ global_variable );
140+
141+ function hello_world (){
142+ global $ global_variable ;
143+ $ local_variable = "Variable local " ;
144+ print ("Hola " . $ global_variable );
145+ print ("Hola " . $ local_variable );
146+ }
147+
148+ hello_world ();
149+
150+ /**
151+ * EJERCICIO EXTRA
152+ *
153+ * - La función imprime todos los números del 1 al 100. Teniendo en cuenta que:
154+ * - Si el número es múltiplo de 3, muestra la cadena de texto del primer parámetro.
155+ * - Si el número es múltiplo de 5, muestra la cadena de texto del segundo parámetro.
156+ * - Si el número es múltiplo de 3 y de 5, muestra las dos cadenas de texto concatenadas.
157+ * - La función retorna el número de veces que se ha impreso el número en lugar de los textos.
158+ *
159+ */
160+
161+
162+ function print_numbers ($ text_1 , $ text_2 ) {
163+ $ count = 0 ;
164+ for ($ i = 1 ; $ i <= 100 ; $ i ++) {
165+ if ($ i % 3 == 0 && $ i % 5 == 0 ) {
166+ print ($ text_1 . $ text_2 . "\n" );
167+ } elseif ($ i % 3 == 0 ) {
168+ print ($ text_1 . "\n" );
169+ } elseif ($ i % 5 == 0 ) {
170+ print ($ text_2 . "\n" );
171+ } else {
172+ print ($ i . "\n" );
173+ $ count += 1 ;
174+ }
175+ }
176+ return $ count ;
177+ }
178+
179+ // Llamada a la función
180+ $ vecesImpresoNumero = print_numbers ("Fizz " , "Buzz " );
181+ print ("Número de veces que se ha impreso un número: " . $ vecesImpresoNumero . "\n" );
0 commit comments