{"id":553,"date":"2016-06-02T23:50:38","date_gmt":"2016-06-03T05:50:38","guid":{"rendered":"http:\/\/projectopy.com\/programacion\/?p=553"},"modified":"2016-06-02T23:50:38","modified_gmt":"2016-06-03T05:50:38","slug":"php-tipo-datos","status":"publish","type":"post","link":"https:\/\/iscodigo.com\/blog\/php\/php-tipo-datos\/","title":{"rendered":"PHP: Tipos de datos"},"content":{"rendered":"<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_72 counter-hierarchy ez-toc-counter ez-toc-grey ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">Tabla de Contenidos<\/p>\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"Toggle Table of Content\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/span><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 eztoc-toggle-hide-by-default' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/iscodigo.com\/blog\/php\/php-tipo-datos\/#Tipos_de_datos\" title=\"Tipos de datos\">Tipos de datos<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/iscodigo.com\/blog\/php\/php-tipo-datos\/#Escalares\" title=\"Escalares\">Escalares<\/a><ul class='ez-toc-list-level-4' ><li class='ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/iscodigo.com\/blog\/php\/php-tipo-datos\/#Boolean\" title=\"Boolean\">Boolean<\/a><ul class='ez-toc-list-level-5' ><li class='ez-toc-heading-level-5'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/iscodigo.com\/blog\/php\/php-tipo-datos\/#Conversion_a_booleanos\" title=\"Conversi\u00f3n a booleanos\">Conversi\u00f3n a booleanos<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/iscodigo.com\/blog\/php\/php-tipo-datos\/#Integer\" title=\"Integer\">Integer<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/iscodigo.com\/blog\/php\/php-tipo-datos\/#Float\" title=\"Float\">Float<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/iscodigo.com\/blog\/php\/php-tipo-datos\/#String\" title=\"String\">String<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-8\" href=\"https:\/\/iscodigo.com\/blog\/php\/php-tipo-datos\/#Compuestos\" title=\"Compuestos\">Compuestos<\/a><ul class='ez-toc-list-level-4' ><li class='ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-9\" href=\"https:\/\/iscodigo.com\/blog\/php\/php-tipo-datos\/#Array\" title=\"Array\">Array<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-10\" href=\"https:\/\/iscodigo.com\/blog\/php\/php-tipo-datos\/#Object\" title=\"Object\">Object<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-11\" href=\"https:\/\/iscodigo.com\/blog\/php\/php-tipo-datos\/#Especiales\" title=\"Especiales\">Especiales<\/a><ul class='ez-toc-list-level-4' ><li class='ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-12\" href=\"https:\/\/iscodigo.com\/blog\/php\/php-tipo-datos\/#NULL\" title=\"NULL\">NULL<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-13\" href=\"https:\/\/iscodigo.com\/blog\/php\/php-tipo-datos\/#Resource\" title=\"Resource\">Resource<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-14\" href=\"https:\/\/iscodigo.com\/blog\/php\/php-tipo-datos\/#Comprobaciones_de_tipos_de_datos\" title=\"Comprobaciones de tipos de datos\">Comprobaciones de tipos de datos<\/a><\/li><\/ul><\/li><\/ul><\/nav><\/div>\n<h2><span class=\"ez-toc-section\" id=\"Tipos_de_datos\"><\/span>Tipos de datos<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>PHP maneja los tipos de datos de forma din\u00e1mica, por lo que una variable puede modificar su tipo en tiempo de ejecuci\u00f3n.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Escalares\"><\/span>Escalares<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<h4><span class=\"ez-toc-section\" id=\"Boolean\"><\/span>Boolean<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<p>Puede devolver dos tipos de valores, las constantes <code>TRUE<\/code> o <code>FALSE<\/code>. Dichos valores no distinguen may\u00fasculas de min\u00fasculas.<\/p>\n<h5><span class=\"ez-toc-section\" id=\"Conversion_a_booleanos\"><\/span>Conversi\u00f3n a booleanos<span class=\"ez-toc-section-end\"><\/span><\/h5>\n<p>Se utilizan los operadores <code>bool<\/code> o <code>boolean<\/code>, el cual no es necesario si en una estructura de control, funci\u00f3n u operador requiere un booleano.<\/p>\n<p>Es importante saber que los siguientes valores se consideran FALSE:<\/p>\n<ul>\n<li>El boolean FALSE mismo<\/li>\n<li>El integer 0 (cero)<\/li>\n<li>El float 0.0 (cero)<\/li>\n<li>El valor string vac\u00edo, y el string \u00ab0\u00bb<\/li>\n<li>Un array con cero elementos<\/li>\n<li>Un object con cero variables miembro (s\u00f3lo en PHP 4)<\/li>\n<li>El tipo especial NULL (incluidas variables no establecidas)<\/li>\n<\/ul>\n<p>Los dem\u00e1s valores se consideran TRUE.<\/p>\n<pre><span style=\"font-weight:400;\">var_dump((bool) \"\"); \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\/\/ bool(false)<\/span>\n<span style=\"font-weight:400;\">var_dump((bool) 1); \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\/\/ bool(true)<\/span>\n<span style=\"font-weight:400;\">var_dump((bool) -2); \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\/\/ bool(true)<\/span>\n<span style=\"font-weight:400;\">var_dump((bool) \"foo\"); \u00a0\u00a0\u00a0\u00a0\/\/ bool(true)<\/span>\n<span style=\"font-weight:400;\">var_dump((bool) 2.3e5); \u00a0\u00a0\u00a0\u00a0\/\/ bool(true)<\/span>\n<span style=\"font-weight:400;\">var_dump((bool) array(12)); \/\/ bool(true)<\/span>\n<span style=\"font-weight:400;\">var_dump((bool) array()); \u00a0\u00a0\/\/ bool(false)<\/span>\n<span style=\"font-weight:400;\">var_dump((bool) \"false\"); \u00a0\u00a0\/\/ bool(true)<\/span><\/pre>\n<h4><span class=\"ez-toc-section\" id=\"Integer\"><\/span>Integer<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<p class=\"simpara\">Los integer pueden especificarse mediante notaci\u00f3n decimal (base 10), hexadecimal (base 16), octal (base 8) o binaria (base 2), opcionalmente precedidos por un signo (- o +).<\/p>\n<p class=\"para\">Los literales de tipo integer binarios est\u00e1n disponibles desde PHP 5.4.0.<\/p>\n<p class=\"para\">Para utilizar la notaci\u00f3n octal, se antepone al n\u00famero un 0 (cero). Para utilizar la notaci\u00f3n hexadecimal, se antepone al n\u00famero 0x. Para utilizar la notaci\u00f3n binaria, se antepone al n\u00famero 0b.<\/p>\n<pre>$a = 1234; \/\/ n\u00famero decimal\n$b = -123; \/\/ un n\u00famero negativo\n$c = 0123; \/\/ n\u00famero octal (equivale a 83 decimal)\n$d = 0x1A; \/\/ n\u00famero hexadecimal (equivale a 26 decimal)\n$e = 0b11111111; \/\/ n\u00famero binario (equivale al 255 decimal)\n<\/pre>\n<h4><span class=\"ez-toc-section\" id=\"Float\"><\/span>Float<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<p>Los n\u00fameros de punto flotante se pueden representar de cualquiera de las siguientes maneras:<\/p>\n<pre>$a = 1.234;\n$b = 1.2e3;\n$c = 7E-10;\n<\/pre>\n<p>Se debe tener especial cuidado con las operaciones ligadas con este tipo de dato, puede resultar en situaciones inesperadas, como el siguiente ejemplo:<\/p>\n<pre>$x = 8 - 6.4;  \t\t\/\/ resulta 1.6\n$y = 1.6;\nvar_dump($x == $y); \t\/\/ es FALSE\n\n\/\/ Se puede corregir utilizando el redondeo\nvar_dump(round($x, 2) == round($y, 2)); \/\/ esto es TRUE\n<\/pre>\n<h4><span class=\"ez-toc-section\" id=\"String\"><\/span>String<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<p>Un string, o cadena, es una serie de caracteres donde cada car\u00e1cter es lo mismo que un byte. Esto significa que PHP solo admite un conjunto de 256 caracteres, y de ah\u00ed que no ofrezca soporte nativo para Unicode. Una cadena puede alcanzar hasta 2GB de tama\u00f1o. Las cadenas en PHP son mutables. Por lo cual la concatenaci\u00f3n, la cual se realiza con el operador punto (<code>.<\/code>), no tiene el mismo alto costo que en otros lenguajes. Al transformar un string a entero o flotante pueden suceder dos cosas:<\/p>\n<ol>\n<li>Si la cadena al principio tiene una parte num\u00e9rica, dicha parte se toma como n\u00famero. Ejemplo: \u00ab144Un ejemplo\u00bb, se covertir\u00eda en el n\u00famero 144.<\/li>\n<li>Si la cadena no posee ninguna parte n\u00famerica se transformar\u00e1 a cero.<\/li>\n<\/ol>\n<p>Una cadena se puede representar, com\u00fanmente, de las siguientes maneras:<\/p>\n<ul>\n<li>Entrecomillado simple<\/li>\n<li>Entrecomillado doble<\/li>\n<\/ul>\n<p>La diferencia entre estos dos, consiste en que el entrecomillado doble realiza un an\u00e1lisis de texto, tratando de convertir las variables internas en los valores correspondientes.<\/p>\n<pre>\n&lt;?php \n\n\/\/ Entrecomillado simple\necho &#039;Esto es una cadena sencilla&#039;;\n\necho &#039;Tambi\u00e9n se pueden incluir nuevas l\u00edneas en\nun string de esta forma, ya que es\ncorrecto hacerlo as\u00ed&#039;;\n\n\/\/ Resultado: Arnold una vez dijo: &quot;I&#039;ll be back&quot;\necho &#039;Arnold una vez dijo: &quot;I&#039;ll be back&quot;&#039;;\n\n\/\/ Entrecomillado doble\n$pais = &#039;Honduras&#039;;\necho &quot;Bienvenidos a $pais&quot;;\n\/\/ Si el texto es confuso, debe utilizarse llaves.\necho &quot;{$pais}, es un gran pais&quot;;\n<\/pre>\n<h3><span class=\"ez-toc-section\" id=\"Compuestos\"><\/span>Compuestos<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<h4><span class=\"ez-toc-section\" id=\"Array\"><\/span>Array<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<p>Un array en PHP es en realidad un mapa ordenado. Un mapa es un tipo de datos que asocia valores con claves. Este tipo se optimiza para varios usos diferentes; se puede emplear como un array, lista (vector), tabla asociativa (tabla hash &#8211; una implementaci\u00f3n de un mapa), diccionario, colecci\u00f3n, pila, cola, y posiblemente m\u00e1s. Ya que los valores de un array pueden ser otros arrays, tambi\u00e9n son posibles \u00e1rboles y arrays multidimensionales.<\/p>\n<h4><span class=\"ez-toc-section\" id=\"Object\"><\/span>Object<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<p>Los tipo <code>object<\/code> son aquellos que se crean mediante la utilizaci\u00f3n de una clase. Adem\u00e1s PHP posee objetos gen\u00e9ricos de la clase est\u00e1ndar: sdtClass.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Especiales\"><\/span>Especiales<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<h4><span class=\"ez-toc-section\" id=\"NULL\"><\/span>NULL<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<p>El valor especial <code>NULL<\/code> representa una variable sin valor. NULL es el \u00fanico valor posible del tipo null.<br \/>\nUna variable es considerada null si:<\/p>\n<ul>\n<li>Se le ha asignado la constante NULL.<\/li>\n<li>No se le ha asignado un valor todav\u00eda.<\/li>\n<li>Se ha destruido con unset().<\/li>\n<\/ul>\n<p>NULL es insensible a may\u00fasculas y min\u00fasculas.<\/p>\n<h4><span class=\"ez-toc-section\" id=\"Resource\"><\/span>Resource<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<p>Un valor tipo resource es una variable especial, que contiene una referencia a un recurso externo. Los recursos son creados y usados por funciones especiales.<\/p>\n<p>El listado que maneja PHP sobre estos tipos, se muestra <a href=\"http:\/\/php.net\/manual\/es\/resource.php\">aqu\u00ed<\/a>.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Comprobaciones_de_tipos_de_datos\"><\/span>Comprobaciones de tipos de datos<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<ul>\n<li><code>is_bool()<\/code>: Comprobar si un valor es booleano.<\/li>\n<li><code>is_integer()<\/code> o <code>is_int()<\/code>: Comprobar si un valor es un n\u00famero entero.<\/li>\n<li><code>is_float()<\/code>: Comprobar si un valor es n\u00famero flotante.<\/li>\n<li><code>is_numeric()<\/code>: Comprobar si un valor es un n\u00famero o una cadena num\u00e9rica.<\/li>\n<li><code>is_string()<\/code>: Comprobar si un valor es una cadena.<\/li>\n<li><code>is_array()<\/code>: Comprobar si un valor es un arreglo.<\/li>\n<li><code>is_object()<\/code>: Comprobar si un valor es un objeto.<\/li>\n<li><code>is_null()<\/code>: Comprobar si un valor es nulo.<\/li>\n<li><code>is_resource()<\/code>: Comprobar si un valor es un recurso.<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Tipos de datos PHP maneja los tipos de datos de forma din\u00e1mica, por lo que una variable puede modificar su tipo en tiempo de ejecuci\u00f3n. Escalares Boolean Puede devolver dos tipos de valores, las constantes TRUE o FALSE. Dichos valores no distinguen may\u00fasculas de min\u00fasculas. Conversi\u00f3n a booleanos Se utilizan los operadores bool o boolean, [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[46],"tags":[141,149],"class_list":["post-553","post","type-post","status-publish","format-standard","hentry","category-php","tag-tipo-de-datos","tag-variables"],"jetpack_sharing_enabled":true,"jetpack_featured_media_url":"","jetpack-related-posts":[],"_links":{"self":[{"href":"https:\/\/iscodigo.com\/blog\/wp-json\/wp\/v2\/posts\/553","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/iscodigo.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/iscodigo.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/iscodigo.com\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/iscodigo.com\/blog\/wp-json\/wp\/v2\/comments?post=553"}],"version-history":[{"count":0,"href":"https:\/\/iscodigo.com\/blog\/wp-json\/wp\/v2\/posts\/553\/revisions"}],"wp:attachment":[{"href":"https:\/\/iscodigo.com\/blog\/wp-json\/wp\/v2\/media?parent=553"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/iscodigo.com\/blog\/wp-json\/wp\/v2\/categories?post=553"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/iscodigo.com\/blog\/wp-json\/wp\/v2\/tags?post=553"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}