{"id":5125,"date":"2025-12-01T14:38:16","date_gmt":"2025-12-01T13:38:16","guid":{"rendered":"https:\/\/sutilweb.eu\/?page_id=5125"},"modified":"2025-12-01T14:40:55","modified_gmt":"2025-12-01T13:40:55","slug":"16-funciones-con-tipado-definido","status":"publish","type":"page","link":"https:\/\/sutilweb.eu\/index.php\/lenguajes\/php\/php-practico\/16-funciones-con-tipado-definido\/","title":{"rendered":"16. Funciones con tipado definido"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Hay ocasiones en las que queramos especificar el tipo de variable que le vamos a pasar a una funci\u00f3n, para ello pondremos delante de la variable pasada como par\u00e1metro el tipo de dato que deseamos recibir. Tambi\u00e9n si ponemos&nbsp;al principio la funci\u00f3n <strong><em>declare(strict_types = <\/em><\/strong>1); obligar\u00e1 a introducir los tipos de valores que la funci\u00f3n pide, y evitamos posibles errores futuros.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Ejm<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>declare(strict_types = 1);\n\n  function sumarEnteros(int $entero1, int $entero2){\n    return $entero1 + $entero2;\n  }\n\n  $resultado = sumarEnteros(2,5);\n  $resultado2 = sumarEnteros(2,5.4);\n  $resultado2 = sumarEnteros(2,\"Hola Mundo\");\n\n  echo $resultado;\n  echo \"&lt;br \/>\";\n  echo $resultado2;\n  echo \"&lt;br \/>\";\n  \/\/ echo $resultado3;  DAR\u00c1 UN ERROR<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Podemos hacer que adem\u00e1s el tipo de dato devuelto sea el que le propongamos a la funci\u00f3n, para ello despu\u00e9s de los par\u00e9ntesis ponemos dos puntos (<strong><em>:<\/em><\/strong>) seguidos del tipo de dato que deseamos devuelva.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Ejm<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>declare(strict_types = 1);\n\n  function sumarEnteros(int $entero1, int $entero2) : int\n  {\n    return ($entero1 + $entero2)\/2;\n  }\n\n  $resultado = sumarEnteros(2,5);\n  $resultado2 = sumarEnteros(2,5.4);\n  $resultado2 = sumarEnteros(2,\"Hola Mundo\");\n\n  echo $resultado;\n  echo \"&lt;br \/>\";\n  echo $resultado2;\n  echo \"&lt;br \/>\";\n\n  \/\/ Esta sintaxis devolver\u00e1 un error ya que devuelve un tipo de dato float y estamos pidiendo que devuelva un entero<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Tambi\u00e9n podemos hacer que la funci\u00f3n nos devuelva un valor entero o un valor flotante, para ello separamos el tipo de dato que queremos devuelva con el s\u00edmbolo (|), de la siguiente forma.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Ejm<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>declare(strict_types = 1);\n\n  function sumarEnteros(int $entero1, int $entero2) : int | float\n  {\n    return ($entero1 + $entero2)\/2;\n  }\n\n  $resultado = sumarEnteros(2, 5);\n  $resultado2 = sumarEnteros(2, 6);\n\n  echo $resultado;\n  echo \"&lt;br \/>\";\n  echo $resultado2;\n  echo \"&lt;br \/>\";<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Tipos de datos que podemos especificar<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Los tipos de datos que podemos especificar son:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong><em>int<\/em><\/strong><\/li>\n\n\n\n<li><strong><em>float<\/em><\/strong><\/li>\n\n\n\n<li><strong><em>string<\/em><\/strong><\/li>\n\n\n\n<li><strong><em>bool<\/em><\/strong><\/li>\n\n\n\n<li><strong><em>array<\/em><\/strong><\/li>\n\n\n\n<li><strong><em>object<\/em><\/strong><\/li>\n\n\n\n<li><strong><em>null<\/em><\/strong><\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Hay ocasiones en las que queramos especificar el tipo de variable que le vamos a pasar a una funci\u00f3n, para ello pondremos delante de la variable pasada como par\u00e1metro el tipo de dato que deseamos recibir. Tambi\u00e9n si ponemos&nbsp;al principio la funci\u00f3n declare(strict_types = 1); obligar\u00e1 a introducir los tipos de valores que la funci\u00f3n [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":4518,"menu_order":15,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_uag_custom_page_level_css":"","site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"class_list":["post-5125","page","type-page","status-publish","hentry"],"uagb_featured_image_src":{"full":false,"thumbnail":false,"medium":false,"medium_large":false,"large":false,"1536x1536":false,"2048x2048":false},"uagb_author_info":{"display_name":"Sutil Web","author_link":"https:\/\/sutilweb.eu\/index.php\/author\/sutilweb\/"},"uagb_comment_info":0,"uagb_excerpt":"Hay ocasiones en las que queramos especificar el tipo de variable que le vamos a pasar a una funci\u00f3n, para ello pondremos delante de la variable pasada como par\u00e1metro el tipo de dato que deseamos recibir. Tambi\u00e9n si ponemos&nbsp;al principio la funci\u00f3n declare(strict_types = 1); obligar\u00e1 a introducir los tipos de valores que la funci\u00f3n&hellip;","_links":{"self":[{"href":"https:\/\/sutilweb.eu\/index.php\/wp-json\/wp\/v2\/pages\/5125","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/sutilweb.eu\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/sutilweb.eu\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/sutilweb.eu\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/sutilweb.eu\/index.php\/wp-json\/wp\/v2\/comments?post=5125"}],"version-history":[{"count":4,"href":"https:\/\/sutilweb.eu\/index.php\/wp-json\/wp\/v2\/pages\/5125\/revisions"}],"predecessor-version":[{"id":5132,"href":"https:\/\/sutilweb.eu\/index.php\/wp-json\/wp\/v2\/pages\/5125\/revisions\/5132"}],"up":[{"embeddable":true,"href":"https:\/\/sutilweb.eu\/index.php\/wp-json\/wp\/v2\/pages\/4518"}],"wp:attachment":[{"href":"https:\/\/sutilweb.eu\/index.php\/wp-json\/wp\/v2\/media?parent=5125"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}