<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>AVLog - AgeValed</title>
	<atom:link href="http://www.agevaled.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.agevaled.com</link>
	<description>Un Geek en Internet!</description>
	<lastBuildDate>Thu, 29 Mar 2012 13:50:33 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Apache VirtualHost Ubuntu</title>
		<link>http://www.agevaled.com/2012/03/29/apache-virtualhost-ubuntu/</link>
		<comments>http://www.agevaled.com/2012/03/29/apache-virtualhost-ubuntu/#comments</comments>
		<pubDate>Thu, 29 Mar 2012 13:49:40 +0000</pubDate>
		<dc:creator>AgeValed</dc:creator>
				<category><![CDATA[Unix]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[apache virtualhost]]></category>
		<category><![CDATA[apache virtualhost unbutnu]]></category>
		<category><![CDATA[ubuntu]]></category>
		<category><![CDATA[unix]]></category>
		<category><![CDATA[virtualhost]]></category>
		<category><![CDATA[virtualhost ubuntu]]></category>

		<guid isPermaLink="false">http://www.agevaled.com/?p=680</guid>
		<description><![CDATA[Pasos a seguir para configurar un VirtualHost de apache en unix]]></description>
			<content:encoded><![CDATA[<p>Hace mucho que no programaba sobre <strong>unix</strong>, y hace  poco decidí volver a mis raíces, y que feo es olvidarse de muchas cosas que uno hacia automáticamente diariamente, por ello tuve que apelar a mis recuerdo y un poco a internet para lograr algo tan simple como configurar un <strong>VirtualHost</strong> local.</p>
<p>Para todos los que tengan el mismo problema que yo o simplemente estén empezando a programar bajo unix, les dejo los pasos a seguir para configurarlo.</p>
<p>Supongamos que la url por la cual vamos a acceder a nuestro proyecto localmente es <strong>http://agevaledtest/</strong>, recuerden que al hacer esto si existe esa url en internet, no van a poder acceder a la misma ya que sera redirigida a nuestro entorno local, vamos a asumir que nuestro proyecto se encuentra en <strong>/var/www/agevaledtest</strong>.</p>
<p>1) Desde la terminal de linux nos dirigimos a la carpeta <strong>/etc/apache2/sites-available</strong></p>
<p style="padding-left: 30px;"><strong>Comando:</strong> &#8221;cd /etc/apache2/sites-available&#8221;</p>
<p>2) Copiamos el archivo <strong>default  </strong>a <strong>agevaledtest</strong></p>
<p style="padding-left: 30px;"><strong>Comando:</strong> &#8220;sudo cp default agevaledtest&#8221;</p>
<p>3) Editamos el archivo y le agregamos las siguientes lineas dentro de <strong>&lt;VirtualHost *&gt; &#8230; &lt;/VirtualHost&gt;</strong></p>
<pre class="brush: bash; gutter: true">ServerName agevaledtest
DocumentRoot /var/www/agevaledtest</pre>
<p>4) Vamos al host de linux y agregamos la siguiente linea abajo de 127.0.0.1 localhost:</p>
<p style="padding-left: 30px;"><strong>Comando:</strong> &#8220;sudo vim /etc/hosts&#8221;</p>
<pre class="brush: bash; gutter: true">127.0.0.1 agevaledtest</pre>
<p>5) Luego tenemos que habilitar nuestro virtualhost nuevo</p>
<p style="padding-left: 30px;"><strong>Comando:</strong> &#8220;sudo a2ensite agevaledtest&#8221;</p>
<p>6) Reiniciamos apache2</p>
<p style="padding-left: 30px;"><strong>Comando:</strong> &#8220;sudo /etc/init.d/apache2 reload&#8221;</p>
<p>Y listo ya tenemos nuestro virtual host listo para ser usado, ahora nos dirigimos a nuestro browser y ponemos <strong>http://agevaledtest/ </strong>y deberíamos ver nuestro proyecto!</p>
<p>Espero que les sea útil, cualquier duda pregunten!<img src="http://www.agevaled.com/?ak_action=api_record_view&#038;id=680&#038;type=feed" alt="" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.agevaled.com/2012/03/29/apache-virtualhost-ubuntu/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PHP 5.4.0 liberado!</title>
		<link>http://www.agevaled.com/2012/03/01/php-5-4-0-liberado/</link>
		<comments>http://www.agevaled.com/2012/03/01/php-5-4-0-liberado/#comments</comments>
		<pubDate>Thu, 01 Mar 2012 22:16:21 +0000</pubDate>
		<dc:creator>AgeValed</dc:creator>
				<category><![CDATA[Novedades]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Programación]]></category>
		<category><![CDATA[Migrar PHP 5.3 a PHP 5.4]]></category>
		<category><![CDATA[PHP 5.4]]></category>
		<category><![CDATA[PHP Arrays]]></category>
		<category><![CDATA[PHP Traints]]></category>
		<category><![CDATA[spotlight]]></category>

		<guid isPermaLink="false">http://www.agevaled.com/?p=670</guid>
		<description><![CDATA[Les comento que ya se encuentra la nueva versión de PHP liberada, la versión 5.4.0, luego de varios updates que se hicieron a la versión PHP 5.3 ya contamos con nuevas versión que incluye (según ellos) un gran número de nuevas características y correcciones de errores. Podemos ver el changelog con información además del comunicado de prensa. &#160; &#160; &#160; &#160; Las principales novedades son [...]]]></description>
			<content:encoded><![CDATA[<p>Les comento que ya se encuentra la nueva versión de <strong>PHP</strong> liberada, la versión <strong>5.4.0</strong>, luego de varios updates que se hicieron a la versión <a title="PHP 5.3 - AgeValed" href="http://www.agevaled.com/2010/06/08/lo-nuevo-en-php-5-3/" target="_blank">PHP 5.3</a> ya contamos con nuevas versión que incluye (según ellos) un gran número de nuevas características y correcciones de errores.</p>
<p>Podemos ver el <a title="ChangeLog - PHP" href="http://php.net/ChangeLog-5.php" target="_blank">changelog </a>con información además del <a title="Release Announcement" href="http://php.net/releases/5_4_0.php" target="_blank">comunicado de prensa</a>.</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<h3><strong>Las principales novedades son las siguientes:</strong></h3>
<ul>
<li><strong>Traits (<a title="Traits - PHP" href="http://ar2.php.net/manual/en/language.oop5.traits.php" target="_blank">Link</a>):</strong></li>
</ul>
<p style="padding-left: 60px;">Un <strong>Traits</strong> tiene por objeto reducir algunas limitaciones de la herencia simple, permitiendo a los desarrolladores reutilizar conjuntos de métodos libremente en varias clases independientes que viven en las jerarquías de clases diferentes.</p>
<ul>
<li><strong>Sintaxis Corta para Arrays (<a title="Arrays - PHP" href="http://docs.php.net/manual/en/language.types.array.php" target="_blank">Link</a>)</strong></li>
</ul>
<pre class="brush: php; gutter: true">$array = array(
    &quot;foo&quot; =&gt; &quot;bar&quot;,
    &quot;bar&quot; =&gt; &quot;foo&quot;
);

// para PHP 5.4
$array = [
    &quot;foo&quot; =&gt; &quot;bar&quot;,
    &quot;bar&quot; =&gt; &quot;foo&quot;
];</pre>
<ul>
<li><strong>Servidor web embebido(<a title="Built-in web server - PHP" href="http://www.php.net/manual/en/features.commandline.webserver.php" target="_blank">Link</a>):</strong></li>
</ul>
<p style="padding-left: 60px;">CLI SAPI provee un servidor web embebido.</p>
<p style="padding-left: 60px;">Este servidor web está diseñado solamente para propósitos de desarrollo, y no debería ser utilizado en ambientes en producción.</p>
<ul>
<li><strong>Mejora del rendimiento y reducción en el consumo de memoria.</strong></li>
</ul>
<div style="padding-left: 60px;">Es un tema importante el rendimiento y la gestión de memoria la cual se mejoró enporcentajes de dos cifras.</div>
<ul>
<li><strong>Magic Quotes</strong></li>
</ul>
<div style="padding-left: 60px;">Oficialmente han sido deprecadas</div>
<p><strong>Como migrar de PHP 5.3 a PHP 5.4?</strong></p>
<p style="padding-left: 30px;">Podemos encontrar una guía en la siguiente <a title="Migration PHP 5.4" href="http://ar.php.net/migration54" target="_blank">url</a></p>
<p><strong>Donde podemos descargar PHP 5.4?</strong></p>
<p style="padding-left: 30px;">Podes descargarlo desde la siguiente <a title="Download PHP 5.4" href="http://php.net/downloads.php#v5.4.0" target="_blank">url</a></p>
<p><img src="http://www.agevaled.com/?ak_action=api_record_view&#038;id=670&#038;type=feed" alt="" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.agevaled.com/2012/03/01/php-5-4-0-liberado/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Zend Framework &#8211; Zend_Translate + Zend_Route</title>
		<link>http://www.agevaled.com/2012/02/27/zend-framework-zend_translate-zend_route/</link>
		<comments>http://www.agevaled.com/2012/02/27/zend-framework-zend_translate-zend_route/#comments</comments>
		<pubDate>Mon, 27 Feb 2012 07:34:05 +0000</pubDate>
		<dc:creator>AgeValed</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Programación]]></category>
		<category><![CDATA[jon lebensold]]></category>
		<category><![CDATA[spotlight]]></category>
		<category><![CDATA[Zend]]></category>
		<category><![CDATA[zend framewo]]></category>
		<category><![CDATA[zend route]]></category>
		<category><![CDATA[zend translate]]></category>

		<guid isPermaLink="false">http://www.agevaled.com/?p=659</guid>
		<description><![CDATA[Les quiero compartir algo que estaba necesitando para un sitio web que estoy creando, y estuve peleando bastante para que funcione todo perfecto. Primero que nada quiero agradecer a Jon Lebensold con la Introducción a Zend_Transalte que con la ayuda de ZendCast pude empezar a lograr hacer las cosas que quería, aca tome varias cosas para el código del Plugin de selección de Lenguaje ! La idea [...]]]></description>
			<content:encoded><![CDATA[<p>Les quiero compartir algo que estaba necesitando para un sitio web que estoy creando, y estuve peleando bastante para que funcione todo perfecto.</p>
<p>Primero que nada quiero agradecer a <a title="Jon Lebensold" href="http://www.agevaled.com/2010/08/01/zend-framework-screencasts-by-jon-lebensold/" target="_blank">Jon Lebensold</a> con la <a title="Intraduccion Zend_Translate" href="http://www.zendcasts.com/introducing-zend_translate/2009/11/" target="_blank">Introducción a Zend_Transalte</a> que con la ayuda de ZendCast pude empezar a lograr hacer las cosas que quería, aca tome varias cosas para el código del Plugin de selección de Lenguaje !</p>
<p>La idea de esto es tener un Plugin en el sitio para que sea multilenguaje utilizando Zend_Translate y Zend_route para que cualquiera de las siguientes <strong>url</strong> funcionen (esto fue lo que mas me costo)</p>
<p>&nbsp;</p>
<ul>
<li>/:lang/:module/:controller/:action</li>
<li>/:lang/:module/:controller</li>
<li>/:lang/:module</li>
<li>/:lang</li>
<li>/:module/:controller/:action</li>
<li>/:module/:controller</li>
<li>/:module</li>
</ul>
<p>Vamos a crear el archivo plugin para la selección del lenguaje que vamos a usar (Cortesía de <strong>Jon Lebensold</strong>). El archivo esta ubicado en<strong> /library/App/Controller/Plugin/LangSelector.php</strong></p>
<pre class="brush: php; gutter: true">&lt;?php
/**
 * Description of LangSelector
 */
class App_Controller_Plugin_LangSelector
    extends Zend_Controller_Plugin_Abstract
{
    public function preDispatch(Zend_Controller_Request_Abstract $request)
    {
	$lang = $request-&gt;getParam(&#039;lang&#039;,&#039;&#039;);

        if ($lang !== &#039;en&#039; &amp;&amp; $lang !== &#039;es&#039;)
	    $request-&gt;setParam(&#039;lang&#039;,&#039;es&#039;);

	$lang = $request-&gt;getParam(&#039;lang&#039;);

        switch ($lang) {
            case &#039;es&#039;:
                $locale = &#039;es_AR&#039;;
                break;
            case &#039;en&#039;:
                $locale = &#039;en_US&#039;;
                break;
            default:
                break;
        }

	$zl = new Zend_Locale();
	$zl-&gt;setLocale($locale);
	Zend_Registry::set(&#039;Zend_Locale&#039;, $zl);

	$translate = new Zend_Translate(&#039;csv&#039;, APPLICATION_PATH . &#039;/config/lang/&#039;. $lang . &#039;.csv&#039; , $lang);
	Zend_Registry::set(&#039;Zend_Translate&#039;, $translate);

    }

}</pre>
<p>Luego en el archivo <strong>appliation.ini</strong> agregamos la siguiente linea.</p>
<pre class="brush: php; gutter: true">resources.frontController.plugins.LangSelector = &quot;App_Controller_Plugin_LangSelector&quot;</pre>
<p>Tenemos que crear unos archivos dentro de la carpeta <strong>/config/lang/</strong> llamados</p>
<ul>
<li><strong>en.csv</strong></li>
<li><strong>es.csv</strong></li>
</ul>
<p>Y ahi agregar separados por coma el texto, el primero seria el que vamos a hacer referencia y el segundo la traducción. Luego el texto que queremos traducir lo llamamos de la siguiente manera</p>
<pre class="brush: php; gutter: true">&lt;?= $this-&gt;translate(&#039;Home&#039;); ?&gt;</pre>
<p>Que esto sera reemplazado por lo que tengamos en nuestros archivos .csv</p>
<p>Ejemplo archivo es.csv;</p>
<p>?# Español<br />
Home;Inicio</p>
<p>Ejemplo archivo en.csv;</p>
<p>?# Español<br />
Home;Home</p>
<p>Luego en el archivo <strong>Bootstrap.php</strong> debemos agregar el siguiente codigo:</p>
<pre class="brush: php; gutter: true">//Inicialize route
    protected function _initRouter()
    {
        //Routes
        $frontController = Zend_Controller_Front::getInstance();
        $router = $frontController-&gt;getRouter();

        //
        $lang = new Zend_Controller_Router_Route(
                        &#039;:lang/:module/:controller/:action&#039;,
                        array(
                            &#039;lang&#039; =&gt; &#039;es&#039;,
                            &#039;module&#039; =&gt; &#039;default&#039;,
                            &#039;controller&#039; =&gt; &#039;index&#039;,
                            &#039;action&#039; =&gt; &#039;index&#039;
                        ),
                        array(
                            &#039;lang&#039; =&gt; &#039;[a-z]{2}&#039;
                        )
        );
        $router-&gt;addRoute(&#039;lang&#039;, $lang);
}</pre>
<p><strong>Nota Importante: </strong>Para el resto de los router que vayamos a crear debemos agregar un par de cosas muy importantes! aca les dejo un ejemplos</p>
<pre class="brush: actionscript3; gutter: true">        //Route for user list
        $route = new Zend_Controller_Router_Route(
                        &#039;:lang/admin/index&#039;,
                        array(
                            &#039;lang&#039; =&gt; &#039;es&#039;,
                            &#039;module&#039; =&gt; &#039;admin&#039;,
                            &#039;controller&#039; =&gt; &#039;index&#039;,
                            &#039;action&#039; =&gt; &#039;index&#039;
                        ),
                        array(
                            &#039;lang&#039; =&gt; &#039;[a-z]{2}&#039;
                        )
        );
        $router-&gt;addRoute(&#039;admin_user_list&#039;, $route);</pre>
<p>Siempre tienen que agregar en <strong>:lang</strong> del inicio, en el array agregar <strong>&#8216;lang&#8217; =&gt; &#8216;es&#8217; </strong>y tambien el <strong>array(&#8216;lang&#8217; =&gt; &#8216;[a-z]{2}&#8217;) </strong>así no van a tener problemas con ningún route que agreguen!</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;<img src="http://www.agevaled.com/?ak_action=api_record_view&#038;id=659&#038;type=feed" alt="" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.agevaled.com/2012/02/27/zend-framework-zend_translate-zend_route/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Habemus Google+ API</title>
		<link>http://www.agevaled.com/2011/09/15/habemus-google-api/</link>
		<comments>http://www.agevaled.com/2011/09/15/habemus-google-api/#comments</comments>
		<pubDate>Thu, 15 Sep 2011 21:10:22 +0000</pubDate>
		<dc:creator>AgeValed</dc:creator>
				<category><![CDATA[Novedades]]></category>
		<category><![CDATA[Programación]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[google plus api]]></category>
		<category><![CDATA[google+ api]]></category>
		<category><![CDATA[spotlight]]></category>

		<guid isPermaLink="false">http://www.agevaled.com/?p=632</guid>
		<description><![CDATA[Luego de esperar un par de meses, y una larga espera, Google decidió hacer publica la primera releace de la API de Google+, es algo que estaba esperando desde el primer día, antes de empezar a ver bien todo lo que se puede hacer, decidí escribir este post para que se enteren, luego vere de escribir [...]]]></description>
			<content:encoded><![CDATA[<p>Luego de esperar un par de meses, y una larga espera, <strong>Google</strong> decidió hacer publica la primera releace de la <strong>API de Google+</strong>, es algo que estaba esperando desde el primer día, antes de empezar a ver bien todo lo que se puede hacer, decidí escribir este post para que se enteren, luego vere de escribir un post con un poco mas de explicación sobre lo que nos ofrece la <strong>API. </strong>En esta primera entrega, Google, enfoco la api a los datos públicos del usuario solamente.</p>
<p>Tambien Google estrena una nueva pagina Google Developer, donde encontraremos informacion sobre los terminos de usos, política de privacidad, documentación y muchas otras cosas mas!</p>
<p>&nbsp;</p>
<p>Google nos ofrece <strong>librerías</strong> para varios lenguajes de programación, tales como:</p>
<ul>
<li><strong>.NET</strong></li>
<li><strong>Java</strong></li>
<li><strong>Objetive C</strong></li>
<li><strong>PHP</strong></li>
<li><strong>Pyton</strong></li>
<li><strong>Ruby</strong></li>
<li><strong>Google Web Toolkit</strong></li>
</ul>
<div>Para algunos nos ofrece una demostración de como usar las <strong>librerías</strong>.</div>
<div>Ahora los dejo que disfruten&#8230;</div>
<div>Link Google Plus API | <a href="https://developers.google.com/+/api/" target="_blank">https://developers.google.com/+/api/</a></div>
<div>Link Google Developer Page | <a title="https://developers.google.com/+/" href="https://developers.google.com/+/" target="_blank">https://developers.google.com/+/</a></div>
<p><img src="http://www.agevaled.com/?ak_action=api_record_view&#038;id=632&#038;type=feed" alt="" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.agevaled.com/2011/09/15/habemus-google-api/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Bootstrap, from Twitter</title>
		<link>http://www.agevaled.com/2011/09/08/bootstrap-from-twitter/</link>
		<comments>http://www.agevaled.com/2011/09/08/bootstrap-from-twitter/#comments</comments>
		<pubDate>Fri, 09 Sep 2011 02:38:08 +0000</pubDate>
		<dc:creator>AgeValed</dc:creator>
				<category><![CDATA[Links]]></category>
		<category><![CDATA[Novedades]]></category>
		<category><![CDATA[bootstrap]]></category>
		<category><![CDATA[Bootstrap para twitter]]></category>
		<category><![CDATA[spotlight]]></category>
		<category><![CDATA[twitter]]></category>

		<guid isPermaLink="false">http://www.agevaled.com/?p=608</guid>
		<description><![CDATA[Hoy descubrí algo interesante en la web Bootstrap, from Twitter. Bootstrap, From Twitter es un conjunto de herramientas de Twitter diseñado el desarrollo de aplicaciones y sitios webs. Incluye base de CSS y HTML para la tipografía, formas, botones, cuadros, redes, navegación, y mucho más. Bootstrap para twitter fue desarrollado por @mdo y @fat Con [...]]]></description>
			<content:encoded><![CDATA[<p>Hoy descubrí algo interesante en la web <strong>Bootstrap, from Twitter</strong>.</p>
<p><strong>Bootstrap, From Twitter</strong> es un conjunto de herramientas de Twitter diseñado el desarrollo de aplicaciones y sitios webs.</p>
<p>Incluye base de CSS y HTML para la tipografía, formas, botones, cuadros, redes, navegación, y mucho más.</p>
<p>Bootstrap para twitter fue desarrollado por <a href="http://twitter.com/mdo" target="_blank">@mdo</a> y <a href="http://twitter.com/fat" target="_blank">@fat</a></p>
<p>Con la ayuda y los comentarios de muchos ingenieros en Twitter, Bootstrap ha crecido significativamente para abarcar no sólo los estilos básicos, pero más elegante y duradero de front-end patrones de diseño.</p>
<p><img class="size-full wp-image-610 alignright" title="bootstrap-twitter-agevaled-support" src="http://www.agevaled.com/wp-content/uploads/2011/09/bootstrap-twitter-agevaled-support.jpg" alt="" width="173" height="104" />Bootstrap fue testeado y soporta los browsers mas modernos como <strong>Chrome</strong>, <strong>Safari</strong> y <strong>Firefox</strong>, y hasta la porquería de <strong>Internet Explorer</strong>. Por suerte no dicen si soporta <strong>IE6</strong>, no entiendo porque la gente todavía sigue usándolo (que generoso que soy llamando gente a ese tipo de personas). Bueno mejor sigamos antes que uno se haga mala sangre y empiece a romper cosas.</p>
<p>&nbsp;</p>
<h2><strong>Que es lo que contiene Bootstrap:</strong></h2>
<ul>
<li>Los archivos originales .less.</li>
<li>Archivos CSS completos y minified.</li>
<li>Documentación.</li>
<li>Ejemplos.</li>
</ul>
<h2><strong>Diseños :</strong></h2>
<p>Cuadriculas, Layouts, Encabezados, Textos, Citas, Listas, Tablas (distintos tipos, incluye ordenación de tablas), Todo tipo de Inputs para Formularios,  Botones, Mensajes de Alertas y Errores, Bloques de Mensajes, Barra de Navegación, Paginación, Modales, Tool Tips, Popovers, etc&#8230;<br />&nbsp;<br />
<strong>Link Sitio Oficial |</strong> <a href="http://twitter.github.com/bootstrap/" target="_blank">http://twitter.github.com/bootstrap/</a><br />
<img src="http://www.agevaled.com/?ak_action=api_record_view&#038;id=608&#038;type=feed" alt="" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.agevaled.com/2011/09/08/bootstrap-from-twitter/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PHP &#8211; Errores</title>
		<link>http://www.agevaled.com/2011/09/07/php-errores/</link>
		<comments>http://www.agevaled.com/2011/09/07/php-errores/#comments</comments>
		<pubDate>Wed, 07 Sep 2011 17:32:50 +0000</pubDate>
		<dc:creator>AgeValed</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Programación]]></category>
		<category><![CDATA[Tutoriales]]></category>
		<category><![CDATA[breaking]]></category>
		<category><![CDATA[errores]]></category>
		<category><![CDATA[php errores]]></category>
		<category><![CDATA[spotlight]]></category>
		<category><![CDATA[warning]]></category>

		<guid isPermaLink="false">http://www.agevaled.com/?p=522</guid>
		<description><![CDATA[En este resumen voy a escribir sobre los el control y registro de los errores en PHP. PHP nos permite definir nuestras reglas para controlar los errores, crear errores personificados o como serán registrados/notificados. Tipos de Errores: Existen varios tipos de errores, por lo general se refieran a niveles de error en PHP. Errores de Compilación: [...]]]></description>
			<content:encoded><![CDATA[<p>En este <strong>resumen</strong> voy a escribir sobre los el control y registro de los errores en <strong>PHP</strong>. <strong>PHP</strong> nos permite definir nuestras reglas para controlar los errores, crear errores personificados o como serán registrados/notificados.</p>
<h2><strong>Tipos de Errores:</strong></h2>
<p>Existen varios tipos de errores, por lo general se refieran a<em> niveles de error</em> en <strong>PHP</strong>.</p>
<p><strong>Errores de Compilación:</strong></p>
<ul>
<li>Errores detectados por el <strong>IDE</strong> mientras se compila el script.</li>
</ul>
<div><strong>Errores Fatales:</strong></div>
<div>
<ul>
<li>Errores que detienen la ejecución del script.</li>
</ul>
<div><strong>Errores Recuperables:</strong></div>
<div>
<ul>
<li>Errores que representan fallas, pero se pueden manejar sin problemas.</li>
</ul>
<div><strong>Advertencias:</strong></div>
<div>
<ul>
<li>Errores recuperables que indican una falla en tiempo de ejecución. No detienen la ejecución del script.</li>
</ul>
<div><strong>Noticias:</strong></div>
<div>
<ul>
<li>Indica un error de condición, pero que no es significante. No detiene la ejecución del script.</li>
</ul>
</div>
</div>
</div>
</div>
<h2><strong>Configuración:</strong></h2>
<p>Existen varias opciones en la configuración de los errores y su registro, para ello tenemos el archivo php.ini que es la que se encargará de almacenar todas estas configuraciones.</p>
<p>Nota: Luego de cambiar algo del archivo php.ini es necesario reiniciar el apache para que los cambios surjan efecto, sino no se tomaran estos cambios.</p>
<table>
<thead valign="middle">
<tr valign="middle">
<th>Nombre</th>
<th>Predeterminado</th>
<th>Descripción</th>
<th>Notas</th>
</tr>
</thead>
<tbody valign="middle">
<tr valign="middle">
<td align="left"><a href="http://www.php.net/manual/es/errorfunc.configuration.php#ini.error-reporting" target="_blank">error_reporting</a></td>
<td align="left">NULL</td>
<td align="left">Establece el nivel de notificaciones de errores que serán mostradas.</td>
<td align="left"></td>
</tr>
<tr valign="middle">
<td align="left"><a href="http://www.php.net/manual/es/errorfunc.configuration.php#ini.display-errors" target="_blank">display_errors</a></td>
<td align="left">&#8220;1&#8243;</td>
<td align="left">Determina si los errores serán mostrados en pantalla o se ocultaran.</td>
<td align="left"></td>
</tr>
<tr valign="middle">
<td align="left"><a href="http://www.php.net/manual/es/errorfunc.configuration.php#ini.display-startup-errors" target="_blank">display_startup_errors</a></td>
<td align="left">&#8220;0&#8243;</td>
<td align="left">Determina si los errores de configuración de arranque <strong>PHP</strong> serán mostrados u ocultados.</td>
<td align="left"></td>
</tr>
<tr valign="middle">
<td align="left"><a href="http://www.php.net/manual/es/errorfunc.configuration.php#ini.log-errors" target="_blank">log_errors</a></td>
<td align="left">&#8220;0&#8243;</td>
<td align="left">Determina si los mensajes de los errores deberán registrarse en el registro de log o en error_log.</td>
<td align="left"></td>
</tr>
<tr valign="middle">
<td align="left"><a href="http://www.php.net/manual/es/errorfunc.configuration.php#ini.log-errors-max-len" target="_blank">log_errors_max_len</a></td>
<td align="left">&#8220;1024&#8243;</td>
<td align="left">Establece la longitud máxima del archivo en bytes.</td>
<td align="left">0 para no crear ninguna longitud máxima.</td>
</tr>
<tr valign="middle">
<td align="left"><a href="http://www.php.net/manual/es/errorfunc.configuration.php#ini.ignore-repeated-errors" target="_blank">ignore_repeated_errors</a></td>
<td align="left">&#8220;0&#8243;</td>
<td align="left">Determina si serán ignorados los mensajes repetidos. Deben ocurrir en la misma linea y en el mismo archivo.</td>
<td align="left"></td>
</tr>
<tr valign="middle">
<td align="left"><a href="http://www.php.net/manual/es/errorfunc.configuration.php#ini.ignore-repeated-source" target="_blank">ignore_repeated_source</a></td>
<td align="left">&#8220;0&#8243;</td>
<td align="left">Ignorara la linea o el archivo de los archivos repetidos, por lo tanto no se registraran los errores repetidos en todos los archivos que se ejecutaran.</td>
<td align="left"></td>
</tr>
<tr valign="middle">
<td align="left"><a href="http://www.php.net/manual/es/errorfunc.configuration.php#ini.report-memleaks" target="_blank">report_memleaks</a></td>
<td align="left">&#8220;1&#8243;</td>
<td align="left">Mostrará un informe de las perdidas de memorias detectadas en el gestor de memoria Zend.</td>
<td align="left"></td>
</tr>
<tr valign="middle">
<td align="left"><a href="http://www.php.net/manual/es/errorfunc.configuration.php#ini.track-errors" target="_blank">track_errors</a></td>
<td align="left">&#8220;0&#8243;</td>
<td align="left">Si esta activo el ultimo error sera guardado en la variable <a title="PHP Variable phperrormsg" href="http://www.php.net/manual/es/reserved.variables.phperrormsg.php" target="_blank">$phperrormsg</a>.</td>
<td align="left"></td>
</tr>
<tr valign="middle">
<td align="left"><a href="http://www.php.net/manual/es/errorfunc.configuration.php#ini.html-errors" target="_blank">html_errors</a></td>
<td align="left">&#8220;1&#8243;</td>
<td align="left">Determina si se mostraran los errores de etiqueta HTML en los mensajes de error.</td>
<td align="left"></td>
</tr>
<tr valign="middle">
<td align="left"><a href="http://www.php.net/manual/es/errorfunc.configuration.php#ini.xmlrpc-errors" target="_blank">xmlrpc_errors</a></td>
<td align="left">&#8220;0&#8243;</td>
<td align="left">Desactiva las notificaciones normales y muestra los errores en formato XMLRPC.</td>
<td align="left"></td>
</tr>
<tr valign="middle">
<td align="left"><a href="http://www.php.net/manual/es/errorfunc.configuration.php#ini.xmlrpc-error-number" target="_blank">xmlrpc_error_number</a></td>
<td align="left">&#8220;0&#8243;</td>
<td align="left">Usado como el valor del elemento faultCode de XML-RPC.</td>
<td align="left"></td>
</tr>
<tr valign="middle">
<td align="left"><a href="http://www.php.net/manual/es/errorfunc.configuration.php#ini.docref-root" target="_blank">docref_root</a></td>
<td align="left">&#8220;&#8221;</td>
<td align="left">El nuevo formato de error contiene una referencia a la página describiendo el error o a la función que causa el error.</td>
<td align="left"></td>
</tr>
<tr valign="middle">
<td align="left"><a href="http://www.php.net/manual/es/errorfunc.configuration.php#ini.docref-ext" target="_blank">docref_ext</a></td>
<td align="left">&#8220;&#8221;</td>
<td align="left"><strong>VER</strong> docref_root</td>
<td align="left"></td>
</tr>
<tr valign="middle">
<td align="left"><a href="http://www.php.net/manual/es/errorfunc.configuration.php#ini.error-prepend-string" target="_blank">error_prepend_string</a></td>
<td align="left">NULL</td>
<td align="left">Ingresaremos un string que queremos que se imprima antes del un error.</td>
<td align="left"></td>
</tr>
<tr valign="middle">
<td align="left"><a href="http://www.php.net/manual/es/errorfunc.configuration.php#ini.error-append-string" target="_blank">error_append_string</a></td>
<td align="left">NULL</td>
<td align="left">Ingresaremos un string que queremos que se imprima después del un error.</td>
<td align="left"></td>
</tr>
<tr valign="middle">
<td align="left"><a href="http://www.php.net/manual/es/errorfunc.configuration.php#ini.error-log" target="_blank">error_log</a></td>
<td align="left">NULL</td>
<td align="left">Acá ingresaremos el nombre del archivo en el cual se registraran los errores por defecto.</td>
<td align="left"></td>
</tr>
</tbody>
</table>
<h2>Constantes Predefinidas:</h2>
<p>Un listado de las constantes predefinidas para los distintos tipos de errores, son muy útiles para su reporte, podemos definir esto en nuestro archivo <strong>PHP</strong>.</p>
<p><strong>Ejemplo:</strong></p>
<pre class="brush: php; gutter: true">error_reporting=E_ALL &amp; ~E_NOTICE</pre>
<p>En este caso mostraremos todos los errores, salvo las NOTICE.</p>
<p><strong>E_ERROR</strong></p>
<ul>
<li>Errores fatales que detienen la ejecución del script.</li>
</ul>
<p><strong>E_WARNING </strong></p>
<ul>
<li>Advertencias en tiempo de ejecución, no detienen la ejecución del script.</li>
</ul>
<p><strong>E_PARSE </strong></p>
<ul>
<li>Errores de análisis en tiempo de ejecución.</li>
</ul>
<p><strong>E_NOTICE </strong></p>
<ul>
<li>Avisos que se muestran en tiempo de ejecución. Indica algo que podría ser un error.</li>
</ul>
<p><strong>E_CORE_ERROR </strong></p>
<ul>
<li>Errores fatales que ocurren en el arranque del core de <strong>PHP</strong>. Parecido a  <strong>E_ERROR</strong>, salvo que son generados por el núcleo de <strong>PHP</strong>.</li>
</ul>
<p><strong>E_CORE_WARNING </strong></p>
<ul>
<li>Advertencias que ocurren en el arranque del core de <strong>PHP</strong>. Parecido a  <strong>E_WARNING</strong>, salvo que son generados por el núcleo de <strong>PHP</strong>.</li>
</ul>
<p><strong>E_COMPILE_ERROR </strong></p>
<ul>
<li>Errores fatales en tiempo de compilación. Parecidos a <strong>E_ERROR</strong>, salvo que son generados por el Motor de Script Zend.</li>
</ul>
<p><strong>E_COMPILE_WARNING </strong></p>
<ul>
<li>Advertencias en tiempo de compilación. Parecidos a <strong>E_WARNING</strong>, salvo que son generados por el Motor de Script Zend.</li>
</ul>
<p><strong>E_USER_ERROR </strong></p>
<ul>
<li>Errores generados por el usuario, mediante el uso de la función <strong>trigger_error()</strong>.</li>
</ul>
<p><strong>E_USER_WARNING </strong></p>
<ul>
<li>Advertencias generadas por el usuario, mediante el uso de la función <strong>trigger_error()</strong> .</li>
</ul>
<p><strong>E_USER_NOTICE </strong></p>
<ul>
<li>Mensajes de avisos generadas por el usuario, mediante el uso de la función <strong>trigger_error()</strong>.</li>
</ul>
<p><strong>E_STRICT </strong></p>
<ul>
<li>Habilítelo para que PHP sugiera cambios en su código, lo que asegurará la mejor interoperabilidad y compatibilidad con versiones posteriores de PHP de su código.</li>
</ul>
<p><strong>E_RECOVERABLE_ERROR </strong></p>
<ul>
<li>Errores fatales que son recuperables.</li>
</ul>
<p><strong>E_DEPRECATED </strong></p>
<ul>
<li>Avisos en tiempo de ejecución, que indicara el código que no funcionará en futuras versiones.</li>
</ul>
<p><strong>E_USER_DEPRECATED </strong></p>
<ul>
<li>Avisos generados por el usuario, mediante el uso de la función <strong>trigger_error()</strong>.</li>
</ul>
<p><strong>E_ALL </strong></p>
<ul>
<li>Todos los errores y advertencias de <strong>PHP</strong>, excepto <strong>E_STRICT</strong> (Incluida en 5.4.0).</li>
</ul>
<p>Se pueden combinar todos estos con los siguientes operadores<strong> &#8216;|&#8217;, &#8216;~&#8217;, &#8216;!&#8217;, &#8216;^&#8217; y &#8216;&amp;&#8217;</strong>.</p>
<h2>Link Importante:</h2>
<p>Listado de funciones para Manejo de errores | <a title="Funciones de Manejo de Error" href="http://www.php.net/manual/es/ref.errorfunc.php" target="_blank">Link PHP.NET</a></p>
<p>Espero que les sea útil.</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;<img src="http://www.agevaled.com/?ak_action=api_record_view&#038;id=522&#038;type=feed" alt="" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.agevaled.com/2011/09/07/php-errores/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Crear Hangout de Google+ desde YouTube</title>
		<link>http://www.agevaled.com/2011/08/19/crear-hangout-de-google-plus-desde-youtube/</link>
		<comments>http://www.agevaled.com/2011/08/19/crear-hangout-de-google-plus-desde-youtube/#comments</comments>
		<pubDate>Fri, 19 Aug 2011 04:48:32 +0000</pubDate>
		<dc:creator>AgeValed</dc:creator>
				<category><![CDATA[Novedades]]></category>
		<category><![CDATA[hangout]]></category>
		<category><![CDATA[spotlight]]></category>
		<category><![CDATA[youtube]]></category>

		<guid isPermaLink="false">http://www.agevaled.com/?p=477</guid>
		<description><![CDATA[En estos ultimo mes, Google esta unificando todos sus servicios, no hice ningún post, pero estuve al tanto de la mayoría de los cambios que se van haciendo día a día, hoy escuchando música en YouTube, y queriendo compartir lo que estaba escuchando me percato que ahora se puede comenzar una Hangout de Google+ desde YouTube, primero tenemos que apretar el botón &#8221;Compartir&#8221; o &#8220;Share&#8221;, luego le [...]]]></description>
			<content:encoded><![CDATA[<p>En estos ultimo mes, <strong>Google</strong> esta unificando todos sus servicios, no hice ningún post, pero estuve al tanto de la mayoría de los cambios que se van haciendo día a día, hoy escuchando música en <strong>YouTube</strong>, y queriendo compartir lo que estaba escuchando me percato que ahora se puede comenzar una <strong>Hangout de Google+</strong> desde <strong>YouTube</strong>, primero tenemos que apretar el botón<strong> &#8221;Compartir&#8221;</strong> o<strong> &#8220;Share&#8221;</strong>, luego le damos click a <strong>&#8220;Start a Google+ Hangout&#8221; </strong>Ahí te abre una nueva ventana para empezar una hangout normalmente, solo que en este caso, empieza el vídeo cuando comienza la <strong>hangout</strong>.</p>
<p>Despues dando vuelta si encontraba algo sobre este tema encontré el perfil de <strong><a title="Brian Glick" href="https://plus.google.com/103515259519634902605/about" target="_blank">Brian Glick</a></strong> (<strong>YouTube Product Manager</strong>) en el cual anunciaba esta novedad.</p>
<p>A mi me parece algo interesante, pero no es algo 100% util, es algo mas que nos ofrece el gran mundo google, para simplificarnos la vida.</p>
<p>Que opinan ustedes sobre este, y otros, addons que van agregando a los demas sitios?<img src="http://www.agevaled.com/?ak_action=api_record_view&#038;id=477&#038;type=feed" alt="" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.agevaled.com/2011/08/19/crear-hangout-de-google-plus-desde-youtube/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Codecademy</title>
		<link>http://www.agevaled.com/2011/08/19/codecademy/</link>
		<comments>http://www.agevaled.com/2011/08/19/codecademy/#comments</comments>
		<pubDate>Fri, 19 Aug 2011 04:17:40 +0000</pubDate>
		<dc:creator>AgeValed</dc:creator>
				<category><![CDATA[Links]]></category>
		<category><![CDATA[codecademy]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[small]]></category>
		<category><![CDATA[spotlight]]></category>

		<guid isPermaLink="false">http://www.agevaled.com/?p=490</guid>
		<description><![CDATA[Quería compartir con ustedes esta pagina que me pareció bastante interesante la idea. Codecademy es una pagina que nos enseña en forma divertida a como programar en JavaScript, nos da la posibilidad de compartir y seguir nuestro progreso. Por el momento la pagina contiene 8 cursos: Getting yo Know You Confirm or Deny Variables Letters n&#8217; String Editor and Arrays What [...]]]></description>
			<content:encoded><![CDATA[<p>Quería compartir con ustedes esta pagina que me pareció bastante interesante la idea. <a title="Codecademy" href="http://www.codecademy.com/" target="_blank">Codecademy</a> es una pagina que nos enseña en forma divertida a como programar en <strong>JavaScript</strong>, nos da la posibilidad de compartir y seguir nuestro progreso.</p>
<p>Por el momento la pagina contiene 8 cursos:</p>
<ul>
<li><strong>Getting yo Know You</strong></li>
<li><strong>Confirm or Deny</strong></li>
<li><strong>Variables</strong></li>
<li><strong>Letters n&#8217; String</strong></li>
<li><strong>Editor and Arrays</strong></li>
<li><strong>What if?</strong></li>
<li><strong>Bringing it UP (and Down)</strong></li>
<li><strong>While You Wait</strong></li>
</ul>
<p>Cambien da la posibilidad de Crear una lección, para ello tenes que enviarles un mail.</p>
<p>Este sitio es bastante util para los que quieren aprender a programar cosas básicas con javascript, obviamente les va a faltar mucho camino por delante, pero es un comienzo.</p>
<p><strong>Link al sitio</strong> -&gt; <a href="http://www.codecademy.com/">http://www.codecademy.com/</a></p>
<p>Saludos!<img src="http://www.agevaled.com/?ak_action=api_record_view&#038;id=490&#038;type=feed" alt="" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.agevaled.com/2011/08/19/codecademy/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>PHP &#8211; Funciones</title>
		<link>http://www.agevaled.com/2011/08/19/php-funciones/</link>
		<comments>http://www.agevaled.com/2011/08/19/php-funciones/#comments</comments>
		<pubDate>Fri, 19 Aug 2011 03:42:42 +0000</pubDate>
		<dc:creator>AgeValed</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Programación]]></category>
		<category><![CDATA[Tutoriales]]></category>
		<category><![CDATA[argumento funciones]]></category>
		<category><![CDATA[breaking]]></category>
		<category><![CDATA[Funciones]]></category>
		<category><![CDATA[funciones variables]]></category>
		<category><![CDATA[php funciones]]></category>
		<category><![CDATA[retorno funciones]]></category>
		<category><![CDATA[sobrecarga funciones]]></category>
		<category><![CDATA[spotlight]]></category>

		<guid isPermaLink="false">http://www.agevaled.com/?p=466</guid>
		<description><![CDATA[Funciones en PHP, este resumen debería haberlo hecho un par de post antes, pero se me paso, así que mas vale tarde que nunca! Espero que lo sigan disfrutando y que les interese este tipo de post! Mientras alguien lo lea ya estoy feliz. Funciones definidas por el usuario Simplemente son las funciones que nosotros [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Funciones</strong> en <strong>PHP</strong>, este resumen debería haberlo hecho un par de post antes, pero se me paso, así que mas vale tarde que nunca! Espero que lo sigan disfrutando y que les interese este tipo de post! Mientras alguien lo lea ya estoy feliz.</p>
<h2>Funciones definidas por el usuario</h2>
<p>Simplemente son las <strong>funciones</strong> que nosotros vamos a ir definiendo,  cualquier código <strong>PHP</strong> valido puede ser incluido dentro de la función, hasta podemos incluir otra funciones y definiciones de clases (el tema clases lo veremos mas adelante)</p>
<pre class="brush: php; gutter: true">function foo($arg_1, $arg_2, /* ..., */ $arg_n='')
{
    echo "Función de ejemplo.\n";
    return $valordevuelto;
}</pre>
<p>Las reglas para nombres de <strong>funciones</strong> son las mismas que utilizamos en las etiquetas. Comienza con una letra o guión bajo, seguido por letra, numero o guiones bajos, sin importar la cantidad. Se puede validar con la siguiente expresión regular <strong><em>[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*</em></strong></p>
<p>A diferencia de otros lenguajes, en <strong>PHP</strong> no se necesita definir la función antes de que se haga referencia, excepto que dicha función esta condicionada, acá un ejemplo.</p>
<pre class="brush: php; gutter: true">$haceralgo = true;

/* No podemos llamar a foo() desde aquí
   ya que no existe aún,
   pero podemos llamar a bar() */

bar();

if ($haceralgo) {
  function foo()
  {
    echo "No existo hasta que la ejecución del programa llegue hasta mí.\n";
  }
}

/* Ahora podemos llamar de forma segura a foo()
   ya que $haceralgo se evaluó como verdadero */

if ($haceralgo) foo();

function bar()
{
  echo "Existo desde el momento inmediato que comenzó el programa.\n";
}</pre>
<p>No existe <strong>sobrecarga</strong> de <strong>funciones</strong>, tampoco se puede <strong>&#8220;desdefinir&#8221;</strong> ni <strong>predefinir </strong>una función previamente declarada.</p>
<p>También se puede llamar a funciones <strong>recursivas</strong>, acá un ejemplo:</p>
<pre class="brush: php; gutter: true">function recursividad($a)
{
    if ($a &lt; 20) {
        echo "$a\n";
        recursividad($a + 1);
    }
}</pre>
<p>Mas información -&gt; <a title="PHP - Funciones" href="http://www.php.net/manual/es/functions.user-defined.php" target="_blank">Link</a></p>
<h2>Argumentos de funciones</h2>
<p>Se le pueden pasar <strong>argumentos</strong> a las funciones, estos son pasados por una lista separados por coma, se les pueden enviar<strong> por valor</strong> (por defecto), <strong>por referencia</strong> y <strong>valores predeterminados</strong>.</p>
<p><strong><em>Ejemplo enviado por valor: </em></strong>Al pasar los argumentos por valor, si dicho argumento cambia de valor dentro de la función, no sera cambiado fuera de la función.</p>
<pre class="brush: php; gutter: true">function tomar_matriz($entrada)
{
    echo "$entrada[0] + $entrada[1] = ", $entrada[0]+$entrada[1];
}</pre>
<p><strong><em>Ejemplo enviado por referencia: </em></strong>Al pasar un argumento por referencia, si dicho argumento cambia de valor dentro de la función, al salir de la misma la variable contendrá el nuevo valor obtenido dentro de la función.</p>
<pre class="brush: php; gutter: true">function añadir_algo(&amp;$cadena)
{
    $cadena .= 'y algo más.';
}
$cad = 'Esto es una cadena, ';
añadir_algo($cad);
echo $cad;    // imprime 'Esto es una cadena, y algo más.'</pre>
<p><strong><em>Ejemplo valores predeterminados: </em></strong>Los argumentos predeterminados, serán usados si es que dicho argumento no es pasado a la función.</p>
<pre class="brush: php; gutter: true">function hacercafé($tipo = "capuchino")
{
    return "Hacer una taza de $tipo.\n";
}
echo hacercafé();
echo hacercafé(null);
echo hacercafé("espresso");</pre>
<p>Los valores predeterminados, <strong>NO</strong> puede ser una variable,  un miembro de una clase, o una llamada a una función. Ademas, los argumentos con valores predeterminados deberán estar a la derecha de <strong>TODOS</strong> los argumentos con valores no predeterminados.</p>
<p>Mas información -&gt; <a title="PHP - Argumentos" href="http://www.php.net/manual/es/functions.arguments.php" target="_blank">Link</a></p>
<h2>Retorno de Valores</h2>
<p>Las funciones pueden devolver valores, para lograr esto debemos usar la sentencia <strong>return</strong>, esto causa la interrupción inmediatamente de dicha la función</p>
<p><em>Ejemplo:</em></p>
<pre class="brush: php; gutter: true">function cuadrado($núm)
{
    return $núm * $núm;
}
echo cuadrado(4);   // imprime '16'.</pre>
<p>Mas información -&gt; <a title="PHP - Devolver Valores" href="http://www.php.net/manual/es/functions.returning-values.php" target="_blank">Link</a></p>
<h2>Funciones Variables</h2>
<p><strong>PHP</strong> soporta las  <strong>funciones variables</strong>. Si una variable tiene paréntesis anexos a él, <strong>PHP</strong> buscará una función con el mismo nombre e intentará ejecutarla. Las<strong> funciones variables</strong> se puede usar para implementar llamadas de retorno, tablas de funciones, etc.</p>
<pre class="brush: php; gutter: true">function foo() {
    echo "En foo()
\n";
}

function bar($arg = '')
{
    echo "En bar(); el argumento era '$arg'.
\n";
}

// Esta es una función de envoltura alrededor de echo
function hacerecho($cadena)
{
    echo $cadena;
}

$func = 'foo';
$func();        // Esto llama a foo()

$func = 'bar';
$func('prueba');  // Esto llama a bar()

$func = 'hacerecho';
$func('prueba');  // Esto llama a hacerecho()</pre>
<p>Mas información -&gt; <a title="PHP - Funciones Variables" href="http://www.php.net/manual/es/functions.variable-functions.php" target="_blank">Link</a></p>
<h2>Funciones Internas -&gt; <a title="PHP - Funciones Internas" href="http://www.php.net/manual/es/functions.internal.php" target="_blank">Link</a></h2>
<h2>Funciones Anónimas</h2>
<p>Estas funciones, también conocidas como <strong><em>closures</em></strong>,  nos permiten crear funciones que no poseen un nombre especificado. Dichas funciones son útiles como valores de los parámetros de llamadas de retorno, entre otras cosas.</p>
<p><em>Ejemplo:</em></p>
<pre class="brush: php; gutter: true">echo preg_replace_callback('~-([a-z])~', function ($coincidencia) {
    return strtoupper($coincidencia[1]);
}, 'hola-mundo');
// imprime holaMundo</pre>
<p>Dichas funciones tambien se pueden utilizar como valores de una variable, PHP convierte dichas expresiones en instancias de la clase interna.</p>
<p><em>Ejemplo:</em></p>
<pre class="brush: actionscript3; gutter: true">$saludo = function($nombre)
{
    printf("Hola %s\r\n", $nombre);
};

$saludo('Mundo');
$saludo('PHP');</pre>
<p>Las funciones anónimas, también pueden heredar variables de una clase padre.</p>
<p>Las funciones anónimas están disponibles a partir de <strong>PHP 5.3.0</strong></p>
<p><em>Ejemplo:</em></p>
<pre class="brush: php; gutter: true"><!--?php
// Un carro de compras básico que contiene una lista de productos añadidos
// y la cantidad de cada producto. Incluye un método que
// calcula el precio total de los artículos del carro usando un
// cierre como llamada de retorno.
<span class="hiddenSpellError" pre=""-->class Carro
{
    const PRECIO_MANTEQUILLA = 1.00;
    const PRECIO_LECHE       = 3.00;
    const PRECIO_HUEVOS      = 6.95;

    protected $productos = array();

    public function añadir($producto, $cantidad)
    {
        $this-&gt;productos[$producto] = $cantidad;
    }

    public function obtenerCantidad($producto)
    {
        return isset($this-&gt;productos[$producto]) ? $this-&gt;productos[$producto] :
               FALSE;
    }

    public function obtenerTotal($impuesto)
    {
        $total = 0.00;

        $llamadaDeRetorno =
            function ($cantidad, $producto) use ($impuesto, &amp;$total)
            {
                $precioUnidad = constant(__CLASS__ . "::PRECIO_" .
                    strtoupper($producto));
                $total += ($precioUnidad * $cantidad) * ($impuesto + 1.0);
            };

        array_walk($this-&gt;productos, $llamadaDeRetorno);
        return round($total, 2);
    }
}

$mi_carro = new Carro;

// Añadir algunos artículos al carro
$mi_carro-&gt;añadir('mantequilla', 1);
$mi_carro-&gt;añadir('leche', 3);
$mi_carro-&gt;añadir('huevos', 6);

// Imprimir el total con un impuesto de venta del 5%.
print $mi_carro-&gt;obtenerTotal(0.05) . "\n";
// El resultado es 54.29
?&gt;</pre>
<p>Mas información -&gt; <a title="PHP - Funciones Anonimas" href="http://www.php.net/manual/es/functions.anonymous.php" target="_blank">Link</a></p>
<p>Espero que les sea útil este pos explicando todo sobre las funciones en <strong>PHP</strong>.</p>
<p>Saludos! Y espero sus comentarios!<img src="http://www.agevaled.com/?ak_action=api_record_view&#038;id=466&#038;type=feed" alt="" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.agevaled.com/2011/08/19/php-funciones/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PHP &#8211; Constantes</title>
		<link>http://www.agevaled.com/2011/08/11/php-constantes/</link>
		<comments>http://www.agevaled.com/2011/08/11/php-constantes/#comments</comments>
		<pubDate>Thu, 11 Aug 2011 04:36:44 +0000</pubDate>
		<dc:creator>AgeValed</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Programación]]></category>
		<category><![CDATA[Tutoriales]]></category>
		<category><![CDATA[breaking]]></category>
		<category><![CDATA[constantes]]></category>
		<category><![CDATA[conteste]]></category>
		<category><![CDATA[php const]]></category>
		<category><![CDATA[php constante]]></category>
		<category><![CDATA[php constantes]]></category>
		<category><![CDATA[php define]]></category>
		<category><![CDATA[spotlight]]></category>

		<guid isPermaLink="false">http://www.agevaled.com/?p=445</guid>
		<description><![CDATA[Vamos a continuar con los resúmenes de PHP, en este post voy a escribir un resumen sobre las constantes. Una constante es un identificador (nombre) para expresar un valor simple. Como el nombre sugiere, este valor no puede variar durante la ejecucción del script. Una constante es sensible a mayúsculas por defecto. Por convención, los [...]]]></description>
			<content:encoded><![CDATA[<p>Vamos a continuar con los resúmenes de <strong>PHP</strong>, en este post voy a escribir un resumen sobre las <strong>constantes</strong>.</p>
<p>Una <strong>constante</strong> es un identificador (nombre) para expresar un valor simple. Como el nombre sugiere, este valor no puede variar durante la ejecucción del script. Una constante es sensible a mayúsculas por defecto. Por convención, los identificadores de contantes siempre suelen declararse en mayúsculas.</p>
<p>El nombre de una constante sigue las mismas reglas que cualquier otra etiqueta de <strong>PHP</strong>. Un nombre de <strong>constante</strong> válido empieza por una letra o subguión, seguido por cualquier número o letras, números o subguiones. Usando una regular expression, se representaría de la siguiente manera: <strong>[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*</strong></p>
<p><em>Ejemplos de uso y nomenclaturas:</em></p>
<pre class="brush: php; gutter: true">// Nombre de constantes correctos
define("FOO",     "something");
define("FOO2",    "something else");
define("FOO_BAR", "something more");

// Nombres de constantes incorrectos
define("2FOO",    "something");

// Esto es válido, pero debería ser evitado:
// Ya que quizá algún día PHP crea una constante mágica
// con el mismo nombre y en ese caso provocaría un error en tu script
define("__FOO__", "something");</pre>
<p>Igual que las superglobals, el acceso a una constante es global. Se puede acceder a constantes desde cualquier sitio del script sin importar desde donde. Para más información en el acceso, lea el manual en la sección acceso a variables.</p>
<h2>Sintaxis &#8211; <a style="color: #0431b4;" title="PHP Sintaxys Constantes" href="http://www.php.net/manual/es/language.constants.syntax.php" target="_blank">Link</a></h2>
<p>Se puede definir una <strong>constante</strong> usando la función <strong>define()</strong> o también declarándola fuera de la clase con <strong><em>const</em> </strong>desde <strong>PHP</strong> 5.3.0. Una vez que la constante está definida, no puede ser cambiada o redifinida en ningún momento.</p>
<p>Solo se puede definir como <strong>constantes</strong> valores escalares (<strong>boolean</strong>, <strong>integer</strong>, <strong>float </strong>y <strong>string</strong>). Se puede definir <strong>resource </strong>en <strong>constantes</strong>, pero debería ser evitado, porque puede causar resultados inesperados. <strong>Para ver los diferentes tipos de datos entra al post de <a style="color: #0431b4;" title="PHP – Tipos de datos" href="http://www.agevaled.com/2011/08/06/php-tipos-de-dato/" target="_blank">PHP &#8211; Tipo de Datos</a>.</strong></p>
<p>Para obtener el valor de una <strong>constante</strong> solo es necesarios especificar su nombre. A diferencia de las variables, <em>no</em> se debe prefijar una <strong>constante</strong> con el signo <em>$</em>. También se puede usar la función <strong>constant()</strong>para leer el valor de una constante si se desea obtener el valor de una constante de forma dinámica. Use <strong>get_defined_constants()</strong> para obtener una lista de todas las constantes definidas.</p>
<p><strong>Nota</strong>: Las <strong>contantes</strong> y las variables (globales) se encuentran en un espacio de nombres distinto. Esto implica que por ejemplo <strong><tt>TRUE</tt></strong> y <var><var>$TRUE</var></var> son diferentes.</p>
<p>Si se usa una <strong>constante</strong> que todavía no está definida, <strong>PHP</strong> asume que se está refiriendo al nombre de la constante en si, igual que si fuera una string (CONSTANT vs &#8220;CONSTANT&#8221;). Cuando esto suceda, se mostrará un error de nivel <strong>E_NOTICE</strong>. Ver también la sección en el manual de porqué $foo[bar] es incorrecto (a no ser que primero define() <em>bar</em> como constante). Si simplemente quiere comprobar si una constante está definida, use la función <strong>defined()</strong>.</p>
<p><span style="text-decoration: underline;"><em>Estas son las diferencias entre <strong>constantes</strong> y <strong>variables</strong>:</em></span></p>
<ul>
<li>Las <strong>constantes</strong> no llevan el signo dólar (<em>$</em>), como prefijo.</li>
<li>Las <strong>constantes</strong> solo pueden ser definidas usando la función <strong>define()</strong>, y no por simple asignación.</li>
<li>Las <strong>constantes</strong> pueden ser definidas y accedidas desde cualquier sitio sin importar las reglas de acceso de variables.</li>
<li>Las <strong>constantes</strong> no pueden ser redefinidas o eliminadas una vez se han definido. Y</li>
<li>Las <strong>constantes</strong> solo deberían contener valores escalares.</li>
</ul>
<p><span style="text-decoration: underline;">Defino una <strong>constante</strong>:</span></p>
<pre class="brush: php; gutter: true">
define("CONSTANT", "Hola mundo.");
echo CONSTANT; // muestra "Hola mundo."
echo Constant; // muestra "Constant" y provoca un error.
</pre>
<p><span style="text-decoration: underline;">Definiendo <strong>constantes</strong> usando el keyword <strong>const</strong>:</span></p>
<pre class="brush: php; gutter: true">
// Funciona desde PHP 5.3.0
const CONSTANT = 'Hola Mundo';

echo CONSTANT;
</pre>
<p><strong>Nota</strong>: A diferencia de definir constantes usando <strong>define()</strong>, las constantes definidas con la palabra clave <strong><em>const</em> </strong>deben declararse en el nivel superior del entorno de la aplicación porque se definen en tiempo de ejecución. Esto significa que no pueden declararse dentro de funciones, loops o declaraciones <strong><em>if</em></strong>.</p>
<h2>Constantes predefinidas &#8211; <a style="color: #0431b4;" title="PHP constantes predefinidas" href="http://www.php.net/manual/es/language.constants.predefined.php" target="_blank">Link</a></h2>
<p><strong>PHP</strong> ofrece un largo número de <strong>constantes</strong> predefinidas a cualquier script en ejecución. Muchas de estas constantes, sin embargo, son creadas por diferentes extensiones, y sólo estarán presentes si dichas extensiones están disponibles, bien por carga dinámica o porque han sido compiladas.</p>
<p>Hay siete <strong>constantes</strong> predefinidas que cambian dependiendo de donde son usadas. Por ejemplo el valor de <strong><tt>__LINE__</tt></strong> depende en la línea que se use en el script. Estas constantes especiales son sensibles a mayúsculas y son las siguientes:</p>
<table>
<thead valign="middle">
<tr valign="middle">
<th>Nombre</th>
<th>Descripción</th>
</tr>
</thead>
<tbody valign="middle">
<tr valign="middle">
<td align="left"><strong><tt>__LINE__</tt></strong></td>
<td align="left">Línea actual en el fichero.</td>
</tr>
<tr valign="middle">
<td align="left"><strong><tt>__FILE__</tt></strong></td>
<td align="left">Ruta completa y nombre del fichero. Si se usa dentro de un include, devolverá el nombre del fichero del include. Desde PHP 4.0.2, <strong><tt>__FILE__</tt></strong> siempre contiene la ruta absoluta con symlinks resueltos, en otras versiones contenía la ruta relativa en según que circunstancias.</td>
</tr>
<tr valign="middle">
<td align="left"><strong><tt>__DIR__</tt></strong></td>
<td align="left">Directorio del fichero. Si se utiliza dentro de un include, devolverá el directorio del fichero include. Esta constante es igual que <em>dirname(__FILE__)</em>. El nombre del directorio no lleva la barra inicial a no ser que esté en el directorio root. (Fue añadida en PHP 5.3.0)</td>
</tr>
<tr valign="middle">
<td align="left"><strong><tt>__FUNCTION__</tt></strong></td>
<td align="left">Nombre de la función. (Añadida en PHP 4.3.0) Desde PHP 5 esta constante devuelve el nombre de la función donde fue declarada (sensible a mayúsculas). En PHP 4 su valor siempre es en minúsculas.</td>
</tr>
<tr valign="middle">
<td align="left"><strong><tt>__CLASS__</tt></strong></td>
<td align="left">Nombre de la clase. (Añadida en PHP 4.3.0) Desde PHP 5 esta constante devuelve el nombre de la clase donde fue declarada (sensible a mayúsculas). En PHP 4 su valor siempre es en minúsculas.</td>
</tr>
<tr valign="middle">
<td align="left"><strong><tt>__METHOD__</tt></strong></td>
<td align="left">Nombre del método de la clase. (Añadida en PHP 5.0.0.) Nombre del método devuelto donde fue declarada. (sensible a mayúsculas).</td>
</tr>
<tr valign="middle">
<td align="left"><strong><tt>__NAMESPACE__</tt></strong></td>
<td align="left">Nombre del espacio de nombres actual (sensible a mayúsculas). Esta constante se define en tiempo de compilación (Añadida en PHP 5.3.0) The name of the current namespace (case-sensitive).</td>
</tr>
</tbody>
</table>
<p>Listado con todas las Constantes Reservadas &#8211; <a style="color: #0431b4;" title="PHP Constantes predefinidas" href="http://www.php.net/manual/es/reserved.constants.php" target="_blank">Link</a></p>
<p>Pronto seguiré con mas temas!</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;<img src="http://www.agevaled.com/?ak_action=api_record_view&#038;id=445&#038;type=feed" alt="" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.agevaled.com/2011/08/11/php-constantes/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>PHP &#8211; Constructores del Lenguaje</title>
		<link>http://www.agevaled.com/2011/08/07/php-constructores/</link>
		<comments>http://www.agevaled.com/2011/08/07/php-constructores/#comments</comments>
		<pubDate>Sun, 07 Aug 2011 23:30:15 +0000</pubDate>
		<dc:creator>AgeValed</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Programación]]></category>
		<category><![CDATA[Tutoriales]]></category>
		<category><![CDATA[breaking]]></category>
		<category><![CDATA[constructores]]></category>
		<category><![CDATA[declare]]></category>
		<category><![CDATA[php constructores]]></category>
		<category><![CDATA[php declare]]></category>
		<category><![CDATA[php funciones]]></category>
		<category><![CDATA[php funciones array]]></category>
		<category><![CDATA[php funciones string]]></category>
		<category><![CDATA[php include]]></category>
		<category><![CDATA[php include_once]]></category>
		<category><![CDATA[php require]]></category>
		<category><![CDATA[php require_once]]></category>
		<category><![CDATA[php return]]></category>
		<category><![CDATA[return]]></category>
		<category><![CDATA[spotlight]]></category>

		<guid isPermaLink="false">http://www.agevaled.com/?p=436</guid>
		<description><![CDATA[Llega el sexto resumen de la serie PHP, en este post haré un resumen de los diferentes constructores que podemos llegar a utilizar. declare El constructor declare es usado para fijar directivas de ejecución para un bloque de código. La sintaxis de declare es similar a la sintaxis de otros constructores de control de flujo: [...]]]></description>
			<content:encoded><![CDATA[<p>Llega el sexto resumen de la serie <strong>PHP</strong>, en este post haré un resumen de los diferentes <strong>constructores</strong> que podemos llegar a utilizar.</p>
<h2>declare</h2>
<p>El <strong>constructor declare</strong> es usado para fijar directivas de ejecución para un bloque de código. La sintaxis de declare es similar a la sintaxis de otros constructores de control de flujo:</p>
<p><em>declare (directive)</em><br />
<em> statement</em></p>
<p>La sección <em>directive</em> permite que el comportamiento de declare sea configurado. Actualmente, sólo dos directivas están reconocidas: <strong>ticks</strong> (Ver abajo para más información sobre la directiva <strong>ticks</strong>) y <strong>encoding</strong> (Ver abajo para más información sobre la directiva <strong>encoding</strong>).</p>
<p>La parte <em>statement</em> del bloque declare será ejecutada &#8211; como se ejecuta y que efectos secundarios ocurran durante la ejecución puede depender de la directiva fijada en el bloque <em>directive</em>.</p>
<p>El constructor <strong>declare</strong> también se puede utilizar en el alcance global, afectando a todo el código que le sigue (sin embargo, si el archivo con el declare fue incluido entonces no afectará al archivo padre).</p>
<pre class="brush: php; gutter: true">// estos son lo mismo:

// se puede usar ésto:
declare(ticks=1) {
    // script entero aquí
}

// o se puede usar ésto:
declare(ticks=1);
// script entero aquí</pre>
<h3>Ticks</h3>
<p>Un <strong>tick</strong> es un evento que ocurre para cada sentencia tickable N de bajo nivel ejecutada por el intérprete dentro del bloque declare. El valor para N se especifica usando ticks=N dentro del bloque de declare de la sección directive.</p>
<p>No todas las sentencias son tickable. Por lo general, expresiones de condición y expresiones de argumento no son tickables.</p>
<p>Los eventos que ocurren en cada <strong>tick</strong> se especifican mediante la <a style="color: #0431b4;" title="Function register_tick_function" href="http://www.php.net/manual/es/function.register-tick-function.php" target="_blank">register_tick_function()</a>. Ver el ejemplo abajo para más detalles. Tener en cuenta que más de un evento puede ocurrir por cada tick.</p>
<pre class="brush: php; gutter: true">declare(ticks=1);

// Una función llamada en cada evento tick
function tick_handler()
{
    echo "tick_handler() llamado\n";
}

register_tick_function('tick_handler');

$a = 1;

if ($a &gt; 0) {
    $a += 2;
    print($a);
}</pre>
<h3>encoding</h3>
<p>Una codificación de script puede ser especificada para cada script usando la directiva <strong>encoding</strong>.</p>
<pre class="brush: php; gutter: true">declare(encoding='ISO-8859-1');
// código aquí</pre>
<p>Mas información -&gt; <a style="color: #0431b4;" title="PHP - Declare" href="http://www.php.net/manual/es/control-structures.declare.php" target="_blank">Link</a></p>
<h2>return</h2>
<p>Si se llama desde una función, la sentencia <strong>return()</strong> inmediatamente termina la ejecución de la función actual, y retorna su argumento como el valor de la llamada a la función. <strong>return()</strong> también pondrá fin a la ejecución de una sentencia <strong>eval()</strong> o a un archivo de script.</p>
<p>Si se llama desde el ámbito global, entonces la ejecución del script actual se termina. Si el archivo script actual fue incluido con <strong>include()</strong> o <strong>require()</strong>, entonces el control es pasado de regreso al archivo que hizo el llamado. Además, si el archivo script actual fue incluido, entonces el valor dado a <strong>return()</strong> será retornado como el valor de la llamada <strong>include().</strong> Si <strong>return()</strong> es llamado desde dentro del archivo script principal, entonces termina la ejecución del script. Si el archivo script actual fue nombrado por las opciones de configuración <strong>auto_prepend_file</strong> o <strong>auto_append_file</strong> en <strong>php.ini</strong>, entonces se termina la ejecución de ese archivo script.</p>
<p>Mas información -&gt; <a style="color: #0431b4;" title="PHP - Return" href="http://www.php.net/manual/es/function.return.php" target="_blank">Link</a></p>
<h2>include &amp; include_once</h2>
<p>La sentencia <strong>include()</strong> incluye y evalúa el archivo especificado.</p>
<p>Los archivos son incluidos con base en la ruta de acceso dada o, si ninguna es dada, el <strong>include_path</strong> especificado. Si el archivo no se encuentra en el <strong>include_path</strong>, <strong>include()</strong> finalmente verificará en el propio directorio del script que hace el llamado y en el directorio de trabajo actual, antes de fallar. El constructor <strong>include()</strong> emitirá una advertencia si no puede encontrar un archivo, éste es un comportamiento diferente al de <strong>require()</strong>, el cual emitirá un error fatal..</p>
<p>Si una ruta es definida — ya sea absoluta (comenzando con una letra de unidad o \ en Windows o / en sistemas Unix/Linux) o relativa al directorio actual (comenzando con . o ..) — el <strong>include_path</strong> será ignorado por completo. Por ejemplo, si un nombre de archivo comienza con ../, el interprete buscará en el directorio padre para encontrar el archivo solicitado.</p>
<p>Cuando se incluye un archivo, el código que contiene hereda el ámbito de las variables de la línea en la cual ocurre la inclusión. Cualquier variable disponible en esa línea del archivo que hace el llamado, estará disponible en el archivo llamado, desde ese punto en adelante. Sin embargo, todas las funciones y clases definidas en el archivo incluido tienen el ámbito global.</p>
<p>Si la inclusión ocurre al interior de una función dentro del archivo que hace el llamado, entonces todo el código contenido en el archivo llamado se comportará como si hubiera sido definida dentro de esa función. Por lo tanto, seguirá el ámbito de las variables de esa función. Una excepción a esta regla son las constantes mágicas las cuales son evaluadas por el intérprete antes que ocurra la inclusión.</p>
<p>La sentencia <strong>include_once()</strong> incluye y evalúa el fichero especificado durante la ejecución del script. Es un comportamiento similar al de la sentencia <strong>include()</strong>, siendo la única diferencia que si el código del fichero ya ha sido incluido, no se volverá a incluir. Como su nombre lo indica, será incluido sólo una vez.</p>
<p><strong>include_once()</strong> puede ser usado en casos donde el mismo fichero podría ser incluido y evaluado más de una vez durante una ejecución particular de un script, así que en este caso, puede ayudar a evitar problemas como la redefinición de funciones, reasignación de valores de variables, etc.</p>
<p>Mas información include -&gt; <a style="color: #0431b4;" title="PHP - include" href="http://www.php.net/manual/es/function.include.php" target="_blank">Link</a><br />
Mas información include_once-&gt; <a style="color: #0431b4;" title="PHP - include_once" href="http://www.php.net/manual/es/function.include-once.php" target="_blank">Link</a></p>
<h2>require &amp; require_once</h2>
<p><strong>require()</strong> es idéntico a <strong>include()</strong> excepto que en caso de fallo, además producirá un error de nivel <strong>E_COMPILE_ERROR</strong> fatal. En otras palabras, parará el script mientras que <strong>include()</strong> sólo emitirá una advertencia (<strong>E_WARNING</strong>) lo cual permite continuar el script.</p>
<p>La sentencia <strong>require_once()</strong> es idéntica a <strong>require()</strong> excepto que <strong>PHP</strong> verificará si el archivo ya ha sido incluido y si es así, no se incluye (require) de nuevo.</p>
<p>Mas información require -&gt; <a style="color: #0431b4;" title="PHP - require" href="http://www.php.net/manual/es/function.require.php" target="_blank">Link</a><br />
Mas información require_once -&gt; <a style="color: #0431b4;" title="PHP - require_once" href="http://www.php.net/manual/es/function.require-once.php" target="_blank">Link</a></p>
<h2>goto</h2>
<p>El operador <strong>goto</strong> puede ser usado para saltar a otra sección en el programa. El punto de destino es especificado mediante una etiqueta seguida de dos puntos y la instrucción es dada como goto seguida de la etiqueta del destino deseado. Este <strong>goto</strong> no es completamente sin restricciones. La etiqueta de destino debe estar dentro del mismo fichero y contexto, lo que significa que no se puede saltar fuera de una función o método, ni se puede saltar dentro de uno. Tampoco se puede saltar dentro de cualquier clase de estructura de bucle o switch. Se puede saltar fuera de estos y un uso común es utilizar un goto en lugar de un break multi-nivel.</p>
<p><em>Ejemplo:</em></p>
<pre class="brush: php; gutter: true">goto a;
echo 'Foo';

a:
echo 'Bar';</pre>
<p><em>Ejemplo dentro de un bucle:</em></p>
<pre class="brush: php; gutter: true">
for($i=0,$j=50; $i<100; $i++) {
  while($j--) {
    if($j==17) goto end;
  }
}
echo "i = $i";
end:
echo 'j alcanzó 17';
</pre>
<p><img class="aligncenter" src="http://www.php.net/manual/es/images/0baa1b9fae6aec55bbb73037f3016001-xkcd-goto.png" alt="" width="580" /></p>
<p>Mas información -&gt; <a style="color: #0431b4;" title="PHP - GOTO" href="http://www.php.net/manual/es/control-structures.goto.php" target="_blank">Link</a></p>
<h2>Exit &amp; Die</h2>
<p><strong>exit</strong> — Imprime un mensaje y termina el script actual, se le puede pasar un string como parámetro para que lo imprima en pantalla.</p>
<p><strong>die</strong> — Equivalente a <strong>exit()</strong></p>
<p>Mas información Exit -&gt; <a style="color: #0431b4;" title="PHP - Exit" href="http://www.php.net/manual/es/function.exit.php" target="_blank">Link</a><br />
Mas información Die -&gt; <a style="color: #0431b4;" title="PHP - Die" href="http://www.php.net/manual/es/function.die.php" target="_blank">Link</a></p>
<h2>echo, print, printf, print_r &amp; var_dump</h2>
<p><strong>echo </strong>— Muestra una o más cadenas<br />
<strong>print </strong>— Mostrar una cadena<br />
<strong>printf </strong>— Imprimir una cadena con formato<br />
<strong>print_r </strong>— Imprime información legible para humanos sobre una variable<br />
<strong>var_dump </strong>— Vuelca información sobre una variable</p>
<p>Mas información echo -&gt; <a style="color: #0431b4;" title="PHP - echo" href="http://www.php.net/manual/es/function.echo.php" target="_blank">Link</a><br />
Mas información print -&gt; <a style="color: #0431b4;" title="PHP - print" href="http://www.php.net/manual/es/function.print.php" target="_blank">Link</a><br />
Mas información printf -&gt; <a style="color: #0431b4;" title="PHP - printf" href="http://www.php.net/manual/es/function.printf.php" target="_blank">Link</a><br />
Mas información print_r -&gt; <a style="color: #0431b4;" title="PHP - print_r" href="http://www.php.net/manual/es/function.print-r.php" target="_blank">Link</a><br />
Mas información var_dump -&gt; <a style="color: #0431b4;" title="PHP - var_dump" href="http://www.php.net/manual/es/function.var-dump.php" target="_blank">Link</a></p>
<h2>empty, eval, isset, unset &amp; list</h2>
<p><strong>empty </strong>— Determina si una variable está vacía<br />
<strong>eval </strong>— Evaluar una cadena como código PHP<br />
<strong>isset </strong>— Determina si una variable está definida y no es NULL<br />
<strong>unset </strong>— Destruye una variable especificada<br />
<strong>list </strong>— Asigna variables como si fuera un array</p>
<p>Mas información empty -&gt; <a style="color: #0431b4;" title="PHP - empty" href="http://www.php.net/manual/es/function.empty.php" target="_blank">Link</a><br />
Mas información eval -&gt; <a style="color: #0431b4;" title="PHP - eval" href="http://www.php.net/manual/es/function.eval.php" target="_blank">Link</a><br />
Mas información isset -&gt; <a style="color: #0431b4;" title="PHP - isset" href="http://www.php.net/manual/es/function.isset.php" target="_blank">Link</a><br />
Mas información unset -&gt; <a style="color: #0431b4;" title="PHP - unset" href="http://www.php.net/manual/es/function.unset.php" target="_blank">Link</a><br />
Mas información list -&gt; <a style="color: #0431b4;" title="PHP - list" href="http://www.php.net/manual/es/function.list.php" target="_blank">Link</a></p>
<p>Existen muchas funciones mas útiles que podemos llegar a utilizar y que nos sean útil, acá les dejo los links para que puedan investigar y utilizar las que mas les sea útil.</p>
<p>Funciones de strings - <a style="color: #0431b4;" title="Funciones de sting" href="http://www.php.net/manual/es/ref.strings.php" target="_blank">Link</a><br />
Funciones de manejo de variables - <a style="color: #0431b4;" title="Funciones de manejo de variables" href="http://www.php.net/manual/es/ref.var.php" target="_blank">Link</a><br />
Funciones de Arrays - <a style="color: #0431b4;" title="Funciones de arrays" href="http://www.php.net/manual/es/ref.array.php" target="_blank">Link</a><br />
Funciones del Intérprete XML - <a style="color: #0431b4;" title="Funciones del Intérprete XML" href="http://www.php.net/manual/es/ref.xml.php" target="_blank">Link</a><br />
Funciones de Manejo de Funciones - <a style="color: #0431b4;" title="Funciones de Manejo de Funciones" href="http://www.php.net/manual/es/ref.funchand.php" target="_blank">Link</a><br />
Funciones varias - <a style="color: #0431b4;" title="Funciones Varias" href="http://www.php.net/manual/es/ref.misc.php" target="_blank">Link</a></p>
<p>Ya iré agregando mas links, son varios!</p>
<p>Espero que les interese estos resúmenes. <img src='http://www.agevaled.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Saludos y espero sus criticas!<img src="http://www.agevaled.com/?ak_action=api_record_view&#038;id=436&#038;type=feed" alt="" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.agevaled.com/2011/08/07/php-constructores/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>PHP – Estructura de control – Loop</title>
		<link>http://www.agevaled.com/2011/08/07/php-estructura-de-control-loop/</link>
		<comments>http://www.agevaled.com/2011/08/07/php-estructura-de-control-loop/#comments</comments>
		<pubDate>Sun, 07 Aug 2011 21:17:33 +0000</pubDate>
		<dc:creator>AgeValed</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Programación]]></category>
		<category><![CDATA[Tutoriales]]></category>
		<category><![CDATA[breaking]]></category>
		<category><![CDATA[estructura de control]]></category>
		<category><![CDATA[php break]]></category>
		<category><![CDATA[php continue]]></category>
		<category><![CDATA[php do while]]></category>
		<category><![CDATA[php estructuras de control]]></category>
		<category><![CDATA[php for]]></category>
		<category><![CDATA[php foreach]]></category>
		<category><![CDATA[php while]]></category>
		<category><![CDATA[resumen php]]></category>
		<category><![CDATA[spotlight]]></category>

		<guid isPermaLink="false">http://www.agevaled.com/?p=430</guid>
		<description><![CDATA[Luego de hacer un resumen de las Estructuras de control condicionales, este es el turno de continuar los resúmenes sobre las Estructuras de control Loops en PHP. While Los bucles while son el tipo más sencillo de bucle en PHP. Se comportan igual que su contrapartida en C. La forma básica de una sentencia while es: [...]]]></description>
			<content:encoded><![CDATA[<p>Luego de hacer un resumen de las <a title="PHP – Estructura de control – Condicionales" href="http://www.agevaled.com/2011/08/07/php-estructura-de-control-condicionale/" target="_blank">Estructuras de control condicionales</a>, este es el turno de continuar los resúmenes sobre las<strong> Estructuras de control Loops </strong>en <strong>PHP</strong>.</p>
<h2>While</h2>
<p>Los bucles <strong>while </strong>son el tipo más sencillo de bucle en <strong>PHP</strong>. Se comportan igual que su contrapartida en C. La forma básica de una sentencia <strong>while </strong>es:</p>
<p><em>while (expr)</em><br />
<em>       sentencia</em></p>
<p>El significado de una sentencia <strong>while </strong>es simple. Le dice a <strong>PHP </strong>que ejecute las sentencias anidadas, tanto como la expresión <strong>while </strong>se evalúe como <strong>TRUE</strong>. El valor de la expresión es verificado cada vez al inicio del bucle, por lo que incluso si este valor cambia durante la ejecución de las sentencias anidadas, la ejecución no se detendrá hasta el final de la iteración (cada vez que <strong>PHP </strong>ejecuta las sentencias contenidas en el bucle es una iteración). A veces, si la expresión while se evalúa como <strong>FALSE </strong>desde el principio, las sentencias anidadas no se ejecutarán ni siquiera una vez.</p>
<pre class="brush: php; gutter: true">/* ejemplo 1 */
$i = 1;
while ($i <= 10) {
    echo $i++;  /* el valor presentado sería
                   $i antes del incremento
                   (post-incremento) */
}
</pre>
<p><strong>Sintaxis alternativa</strong></p>
<pre class="brush: php; gutter: true">/* ejemplo 2 */
$i = 1;
while ($i <= 10):
    echo $i;
    $i++;
endwhile;</pre>
<p>Mas información -&gt; <a title="PHP - While" href="http://www.php.net/manual/es/control-structures.while.php" target="_blank">Link</a></p>
<h2>Do-While</h2>
<p>Los bucles <strong>do-while</strong> son muy similares a los bucles <strong>while</strong>, excepto que la expresión verdadera es verificada al final de cada iteración en lugar que al principio. La diferencia principal con los bucles <strong>while </strong>es que está garantizado que corra la primera iteración de un bucle <strong>do-while</strong> (la expresión verdadera sólo es verificada al final de la iteración), mientras que no necesariamente va a correr con un bucle while regular (la expresión verdadera es verificada al principio de cada iteración, si se evalúa como <strong>FALSE</strong> justo desde el comienzo, la ejecución del bucle terminaría inmediatamente).</p>
<p>Hay una sola sintaxis para bucles <strong>do-while</strong>:</p>
<pre class="brush: php; gutter: true">$i = 0;
do {
    echo $i;
} while ($i &gt; 0);</pre>
<p>El bucle de arriba se ejecutaría exactamente una sola vez, ya que después de la primera iteración, cuando la expresión verdadera es verificada, se evalúa como <strong>FALSE</strong> ($i no es mayor que 0) y termina la ejecución del bucle.</p>
<p>Mas información -&gt; <a title="PHP - Do-While" href="http://www.php.net/manual/es/control-structures.do.while.php" target="_blank">Link</a></p>
<h2>For</h2>
<p>Los bucles <strong>for</strong> son los ciclos más complejos en <strong>PHP</strong>. Se comportan como sus contrapartes en C. La sintaxis de un bucle <strong>for</strong> es:</p>
<p><em>for (expr1; expr2; expr3)<br />
sentencia</em></p>
<p>La primera expresión (<em>expr1</em>) es evaluada (<em>ejecutada</em>) una vez incondicionalmente al comienzo del bucle.</p>
<p>En el comienzo de cada iteración, la <em>expr2</em> es evaluada, Si es <strong>TRUE</strong>, el blucle continúa y las sentencias anidadas son ejecutadas. Si se evalúa como <strong>FALSE</strong>, termina la ejecución del bucle.</p>
<p>Al final de cada iteración, la <em>expr3</em> es evaluada (<em>ejecutada</em>).</p>
<p>Cada una de las expresiones puede esta vacía o contener múltiples expresiones separadas por comas. En la <em>expr2</em>, todas las expresiones separadas por una coma son evaluadas pero el resultado se toma de la última parte. Que la <em>expr2</em> esté vacía significa que el bucle deberá ser corrido indefinidamente (<strong>PHP</strong> implícitamente lo considera como <strong>TRUE</strong>, como en C). Esto puede no ser tan inútil como se pudiera pensar, ya que muchas veces se quiere terminar el bucle usando una sentencia condicional break en lugar de ustilizar la expresión verdadera del <strong>for</strong>.</p>
<p>Considere los siguientes ejemplos. Todos ellos muestran los números del 1 al 10:</p>
<pre class="brush: php; gutter: true">//Ejemplo 1
for ($i = 1; $i <= 10; $i++) {
    echo $i;
}
</pre>
<p><strong>Sintaxis Alternativa</strong></p>
<pre class="brush: php; gutter: true">
for ($i = 1; $i <= 10; $i++) :
    echo $i;
endfor;
</pre>
<p>Mas información -&gt; <a title="PHP - For" href="http://www.php.net/manual/es/control-structures.for.php" target="_blank">Link</a></p>
<h2>Foreach</h2>
<p><strong>PHP 4</strong> introdujo un constructor <strong>foreach</strong>, muy parecido al de Perl y algunos otros lenguajes. Simplemente da un modo fácil de iterar sobre arrays. <strong>Foreach</strong> sólo trabaja sólo sobre arrays y resultará en un error al intentar usarlo en una variable con un diferente tipo de datos o una variable no inicializada. Hay dos sintaxis; la segunda es una extensión menor, pero útil de la primera:</p>
<p><em>foreach (array_expression as $value)<br />
sentencias<br />
foreach (array_expression as $key =&gt; $value)<br />
sentencias</em></p>
<p>La primera forma recorre el array dado por array_expression. En cada ciclo, el valor de el elemento actual es asignado a $value y el puntero interno del array es avanzado en uno (así en el próximo ciclo se estará mirando el siguiente elemento).</p>
<p>La segunda manera hace lo mismo, excepto que la clave del elemento actual será asignada a la variable $key en cada ciclo.</p>
<pre class="brush: php; gutter: true">$a = array(1,2,3,4,5);
foreach ($a as $value){
    echo $value
}</pre>
<p>Sintaxis alternativa</p>
<pre class="brush: php; gutter: true">$a = array(1,2,3,4,5);
foreach ($a as $value):
    echo $value
endforeach;</pre>
<p>A partir de <strong>PHP 5</strong>, se pueden modificar fácilmente elementos del array al preceder $value con &amp;. Esto asignará una referencia en lugar de copiar el valor.</p>
<pre class="brush: php; gutter: true">$arr = array(1, 2, 3, 4);
foreach ($arr as &amp;$value) {
    $value = $value * 2;
}</pre>
<p>Mas información -&gt; <a title="PHP - Foreach" href="http://www.php.net/manual/es/control-structures.foreach.php" target="_blank">Link</a></p>
<h2>Break</h2>
<p><strong>Break</strong> termina la ejecución de la estructura actual <strong>for</strong>, <strong>foreach</strong>, <strong>while</strong>, <strong>do-while</strong> o <strong>switch</strong>.</p>
<p>Break acepta un argumento numérico opcional el cual indica de cuantas estructuras anidadas encerradas se debe salir.</p>
<pre class="brush: php; gutter: true">$arr = array('uno', 'dos', 'tres', 'cuatro', 'pare', 'cinco');
while (list(, $val) = each($arr)) {
    if ($val == 'pare') {
        break;    /* Se puede también escribir 'break 1;' aquí. */
    }
    echo "$val\n";
}

/* Usando el argumento opcional. */

$i = 0;
while (++$i) {
    switch ($i) {
    case 5:
        echo "En 5\n";
        break 1;  /* Sólo sale del switch. */
    case 10:
        echo "En 10; saliendo\n";
        break 2;  /* Sale del switch y del while. */
    default:
        break;
    }
}</pre>
<p>Mas información -&gt; <a title="PHP - Break" href="http://www.php.net/manual/es/control-structures.break.php" target="_blank">Link</a></p>
<h2>Continue</h2>
<p>Continue se utiliza dentro de las estructuras de bucle para saltarse el resto de la actual iteración del bucle y continuar la ejecución en la evaluación de la condición y entonces el comienzo de la siguiente iteración.</p>
<p>Continue acepta un argumento numérico opcional el cual indica hasta el final de cuantos niveles de bucles cerrados se debe saltar.</p>
<pre class="brush: php; gutter: true">while (list($key, $value) = each($arr)) {
    if (!($key % 2)) { // saltar miembros impares
        continue;
    }
    do_something_odd($value);
}

$i = 0;
while ($i++ &lt; 5) {
    echo "Outer\n";
    while (1) {
        echo "Middle\n";
        while (1) {
            echo "Inner\n";
            continue 3;
        }
        echo "This never gets output.\n";
    }
    echo "Neither does this.\n";
}</pre>
<p>Mas información -&gt; <a title="PHP - Continue" href="http://www.php.net/manual/es/control-structures.continue.php" target="_blank">Link</a></p>
<p>Pronto seguiremos con mas resumenes de PHP! <img src='http://www.agevaled.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> <img src="http://www.agevaled.com/?ak_action=api_record_view&#038;id=430&#038;type=feed" alt="" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.agevaled.com/2011/08/07/php-estructura-de-control-loop/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>PHP &#8211; Estructura de control &#8211; Condicionales</title>
		<link>http://www.agevaled.com/2011/08/07/php-estructura-de-control-condicionale/</link>
		<comments>http://www.agevaled.com/2011/08/07/php-estructura-de-control-condicionale/#comments</comments>
		<pubDate>Sun, 07 Aug 2011 03:27:25 +0000</pubDate>
		<dc:creator>AgeValed</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Programación]]></category>
		<category><![CDATA[Tutoriales]]></category>
		<category><![CDATA[breaking]]></category>
		<category><![CDATA[condicionales]]></category>
		<category><![CDATA[else]]></category>
		<category><![CDATA[elseif]]></category>
		<category><![CDATA[estructuras de control]]></category>
		<category><![CDATA[if]]></category>
		<category><![CDATA[php estructuras de control]]></category>
		<category><![CDATA[spotlight]]></category>

		<guid isPermaLink="false">http://www.agevaled.com/?p=411</guid>
		<description><![CDATA[Es el turno de escribir el tercer post de la serie de PHP, ya escribí sobre Sintaxis básicas, Tipos de datos y los Operadores. Este es el turno de hacer un resumen de las estructuras de control, específicamente de los condicionales. IF El constructor IF, es uno de los mas importantes en casi todos los lenguajes de programación, el constructor evalúa [...]]]></description>
			<content:encoded><![CDATA[<p>Es el turno de escribir el tercer post de la serie de <strong>PHP</strong>, ya escribí sobre <a title="PHP – Sintaxis Básicas" href="http://www.agevaled.com/2011/08/05/php-sintaxis-basicas/" target="_blank">Sintaxis básicas</a>, <a title="PHP – Tipos de datos" href="http://www.agevaled.com/2011/08/06/php-tipos-de-dato/" target="_blank">Tipos de datos</a> y los <a title="PHP – Operadores" href="http://www.agevaled.com/2011/08/06/php-operadores/" target="_blank">Operadores</a>. Este es el turno de hacer un resumen de las estructuras de control, específicamente de los <strong>condicionales</strong>.</p>
<h2><strong>IF</strong></h2>
<p>El constructor <strong>IF</strong>, es uno de los mas importantes en casi todos los lenguajes de programación, el constructor evalúa una expresión dada, si dicha expresión devuelve <strong>TRUE</strong>, PHP ejecutara la sentencia que se encuentra dentro del <strong>IF</strong>, caso contrario se ignorara.</p>
<p>La estructura del <strong>IF</strong> es similar a:</p>
<p>if ({expresión}){</p>
<p>{sentencia}</p>
<p>}</p>
<p><strong>Ejemplo:</strong></p>
<pre class="brush: php; gutter: true">if ($a == $b){
      echo 'La variable a es igual a la variable b';
}</pre>
<p>Mas información -&gt; <a title="PHP - IF" href="http://www.php.net/manual/es/control-structures.if.php" target="_blank">Link</a></p>
<h2><strong>ELSE</strong></h2>
<p>Con frecuencia se desea ejecutar una sentencia si una cierta condición se cumple y una sentencia diferente si la condición no se cumple. Esto es para lo que es <strong>else</strong>. El <strong>else</strong> extiende una sentencia <strong>if</strong> para ejecutar una sentencia en caso que la expresión e la sentencia <strong>if</strong> se evalúa como <strong>FALSE</strong>. Por ejemplo, el siguiente código deberá mostrar a es mayor que b si $a es mayor que $b y a NO es mayor que b en el caso contrario:</p>
<pre class="brush: php; gutter: true">if ($a &gt; $b) {
  echo "a es mayor que b";
} else {
  echo "a NO es mayor que b";
}</pre>
<p>Mas información -&gt; <a title="PHP - ELSE" href="http://www.php.net/manual/es/control-structures.else.php" target="_blank">Link</a></p>
<h2>ELSE IF</h2>
<p><strong>elseif</strong>, como su nombre lo sugiere, es una combinación de <strong>if</strong> y <strong>else</strong>. Del mismo modo que <strong>else</strong>, extiende una sentencia <strong>if</strong> para ejecutar una sentencia diferente en caso que la expresión <strong>if</strong> original se evalúe como FALSE. Sin embargo, a diferencia de <strong>else</strong>, esa expresión alternativa sólo se ejecutará si la expresión condicional del <strong>elseif</strong> se evalúa como TRUE. Por ejemplo, el siguiente código debe mostrar a es mayor que b, a es igual que b o a es menor que b:</p>
<pre class="brush: php; gutter: true">if ($a &gt; $b) {
    echo "a es mayor que b";
} elseif ($a == $b) {
    echo "a es igual que b";
} else {
    echo "a es menor que b";
}</pre>
<p>Mas información -&gt; <a title="PHP - ELSEIF" href="http://www.php.net/manual/es/control-structures.elseif.php" target="_blank">Link</a></p>
<h2>Sintaxis alternativa:</h2>
<pre class="brush: php; gutter: true">if ($a == 5):
    echo "a igual 5";
    echo "...";
elseif ($a == 6):
    echo "a igual 6";
    echo "!!!";
else:
    echo "a no es 5 ni 6";
endif;</pre>
<p>Mas información -&gt; <a title="PHP - Estructura de control alternativa" href="http://www.php.net/manual/es/control-structures.alternative-syntax.php" target="_blank">Link</a></p>
<h2>SWITCH</h2>
<p>La sentencia <strong>switch</strong> es similar a una serie de sentencias <strong>IF</strong> en la misma expresión. En muchas ocasiones, es posible que se quiera comparar la misma variable (o expresión) con muchos valores diferentes, y ejecutar una parte de código distinta dependiendo de a que valor es igual. Para esto es exactamente la expresión <strong>switch</strong>.</p>
<pre class="brush: php; gutter: true">switch ($i) {
    case 0:
        echo "i es igual a 0";
        break;
    case 1:
        echo "i es igual a 1";
        break;
    case 2:
        echo "i es igual a 2";
        break;
}</pre>
<p><strong>Sintaxis Alternativa</strong></p>
<pre class="brush: php; gutter: true">switch ($i):
    case 0:
        echo "i es igual a 0";
        break;
    case 1:
        echo "i es igual a 1";
        break;
    case 2:
        echo "i es igual a 2";
        break;
    default:
        echo "i no es igual a 0, 1 ni 2";
endswitch;</pre>
<p>Mas información -&gt; <a title="PHP - Switch" href="http://www.php.net/manual/es/control-structures.switch.php" target="_blank">Link</a></p>
<p>Espero que les sirva, el próximo post sera dedicado a las <strong>estructuras de control</strong> de <strong>Loops</strong><img src="http://www.agevaled.com/?ak_action=api_record_view&#038;id=411&#038;type=feed" alt="" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.agevaled.com/2011/08/07/php-estructura-de-control-condicionale/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>PHP &#8211; Operadores</title>
		<link>http://www.agevaled.com/2011/08/06/php-operadores/</link>
		<comments>http://www.agevaled.com/2011/08/06/php-operadores/#comments</comments>
		<pubDate>Sat, 06 Aug 2011 22:34:36 +0000</pubDate>
		<dc:creator>AgeValed</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Programación]]></category>
		<category><![CDATA[Tutoriales]]></category>
		<category><![CDATA[breaking]]></category>
		<category><![CDATA[operadores]]></category>
		<category><![CDATA[PHP Operadores aritméticos]]></category>
		<category><![CDATA[PHP Operadores bit a bit]]></category>
		<category><![CDATA[PHP Operadores de asignación]]></category>
		<category><![CDATA[PHP Operadores de comparación]]></category>
		<category><![CDATA[PHP Operadores de control de errores]]></category>
		<category><![CDATA[PHP Operadores de ejecución]]></category>
		<category><![CDATA[PHP Operadores de incremento/decremento]]></category>
		<category><![CDATA[PHP Operadores de tipo]]></category>
		<category><![CDATA[PHP Operadores lógicos]]></category>
		<category><![CDATA[PHP Operadores para arrays]]></category>
		<category><![CDATA[PHP Operadores para strings]]></category>
		<category><![CDATA[spotlight]]></category>

		<guid isPermaLink="false">http://www.agevaled.com/?p=377</guid>
		<description><![CDATA[Este es el tercer post de la serie PHP; es el turno de hacer un breve resumen sobre los Operadores. Existen varios tipos de operadores en PHP, hará un listado y luego explicaré brevemente cada uno de ellos. Operadores aritméticos Operadores de asignación Operadores bit a bit Operadores de comparación Operadores de control de errores Operadores de [...]]]></description>
			<content:encoded><![CDATA[<p>Este es el tercer post de la serie <strong>PHP;</strong> es el turno de hacer un breve resumen sobre los<strong> Operadores</strong>.</p>
<p>Existen varios tipos de <strong>operadores</strong> en <strong>PHP</strong>, hará un listado y luego explicaré brevemente cada uno de ellos.</p>
<ul>
<li><strong>Operadores aritméticos</strong></li>
<li><strong>Operadores de asignación</strong></li>
<li><strong>Operadores bit a bit</strong></li>
<li><strong>Operadores de comparación</strong></li>
<li><strong>Operadores de control de errores</strong></li>
<li><strong>Operadores de ejecución</strong></li>
<li><strong>Operadores de incremento/decremento</strong></li>
<li><strong>Operadores lógicos</strong></li>
<li><strong>Operadores para strings</strong></li>
<li><strong>Operadores para arrays</strong></li>
<li><strong>Operadores de tipo</strong></li>
</ul>
<h2><strong>Operadores aritméticos</strong></h2>
<p>Son, simplemente, las operaciones aritméticas que uno aprendió en el colegio primario.</p>
<table>
<tbody>
<tr>
<td>-$a</td>
<td>Negación</td>
<td>Opuesto de $a.</td>
</tr>
<tr>
<td>$a + $b</td>
<td>Adición</td>
<td>Suma de $a y $b.</td>
</tr>
<tr>
<td>$a &#8211; $b</td>
<td>Sustracción</td>
<td>Diferencia de $a y $b.</td>
</tr>
<tr>
<td>$a * $b</td>
<td>Multiplicación</td>
<td>Producto de $a y $b.</td>
</tr>
<tr>
<td>$a / $b</td>
<td>División</td>
<td>Cociente de $a y $b.</td>
</tr>
<tr>
<td>$a % $b</td>
<td>Módulo</td>
<td>Resto de $a dividido por $b.</td>
</tr>
</tbody>
</table>
<p><em>Mas información -&gt; <a style="color: #0431b4;" title="Operaciones Aritméticas PHP" href="http://www.php.net/manual/es/language.operators.arithmetic.php" target="_blank">link</a></em></p>
<h2><strong>Operadores de asignación</strong></h2>
<p>El operador de asignación es el signo <strong>=</strong> (igual), el cual se encarga de definir el valor de lo que se encuentra a la derecha a lo que esta a la izquierda, siempre y cuando tenga sentido!</p>
<pre class="brush: php; gutter: true">$a = 2; //Defino la variable $a con el valor 2

$b = &$a; // Hago una referencia a $b de $a</pre>
<p><em>Mas información -&gt; <a style="color: #0431b4;" title="Operaciones de Asignación PHP" href="http://www.php.net/manual/es/language.operators.assignment.php" target="_blank">link</a></em></p>
<h2><strong>Operadores bit a bit</strong></h2>
<p>Los operadores bit a bit permiten la evaluación y la manipulación de bits específicos dentro de un <strong>integer</strong>.</p>
<table>
<tbody valign="middle">
<tr valign="middle">
<td style="width: 70px;" align="left"><strong><code>$a &amp; $b</code></strong></td>
<td align="left">And (y)</td>
<td align="left">Los bits que están activos en ambos <var><var>$a</var></var> y <var><var>$b</var></var> son activados.</td>
</tr>
<tr valign="middle">
<td align="left"><strong><code>$a | $b</code></strong></td>
<td align="left">Or (o inclusivo)</td>
<td align="left">Los bits que están activos ya sea en <var><var>$a</var></var> o en <var><var>$b</var></var> son activados.</td>
</tr>
<tr valign="middle">
<td align="left"><strong><code>$a ^ $b</code></strong></td>
<td align="left">Xor (o exclusivo)</td>
<td align="left">Los bits que están activos en <var><var>$a</var></var> o en <var><var>$b</var></var>, pero no en ambos, son activados.</td>
</tr>
<tr valign="middle">
<td align="left"><strong><code>~ $a</code></strong></td>
<td align="left">Not (no)</td>
<td align="left">Los bits que están activos en $a son desactivados, y viceversa. Bits that are set in <var><var>$a</var></var> are not set, and vice versa.</td>
</tr>
<tr valign="middle">
<td align="left"><strong><code>$a &lt;&lt; $b</code></strong></td>
<td align="left">Shift left(desplazamiento a izquierda)</td>
<td align="left">Desplaza los bits de <var><var>$a</var></var>, <var><var>$b</var></var> pasos a la izquierda (cada paso quiere decir &#8220;multiplicar por dos&#8221;).</td>
</tr>
<tr valign="middle">
<td align="left"><strong><code>$a &gt;&gt; $b</code></strong></td>
<td align="left">Shift right (desplazamiento a derecha)</td>
<td align="left">Desplaza los bits de <var><var>$a</var></var>, <var><var>$b</var></var> pasos a la derecha (cada paso quiere decir &#8220;dividir por dos&#8221;).</td>
</tr>
</tbody>
</table>
<p>Hay unos ejemplos muy buenos en la pagina oficial de <strong>PHP</strong>, para entender 100% cómo funcionan los operadores bit a bit</p>
<p><em>Mas información -&gt; <a style="color: #0431b4;" title="Operadores Bit a Bit PHP" href="http://www.php.net/manual/es/language.operators.bitwise.php" target="_blank">link</a></em></p>
<h2><strong>Operadores de comparación</strong></h2>
<p>Son los operadores que nos dejan comparar dos valores.</p>
<table>
<tbody valign="middle">
<tr valign="middle">
<td align="left">$a == $b</td>
<td align="left">Igual</td>
<td align="left"><strong><tt>TRUE</tt></strong> si <var><var>$a</var></var> es igual a <var><var>$b</var></var> después de la manipulación de tipos.</td>
</tr>
<tr valign="middle">
<td align="left">$a === $b</td>
<td align="left">Idéntico</td>
<td align="left"><strong><tt>TRUE</tt></strong> si <var><var>$a</var></var> es igual a <var><var>$b</var></var>, y son del mismo tipo. (a partir de PHP 4)</td>
</tr>
<tr valign="middle">
<td align="left">$a != $b</td>
<td align="left">Diferente</td>
<td align="left"><strong><tt>TRUE</tt></strong> si <var><var>$a</var></var> no es igual a <var><var>$b</var></var> después de la manipulación de tipos.</td>
</tr>
<tr valign="middle">
<td align="left">$a &lt;&gt; $b</td>
<td align="left">Diferente</td>
<td align="left"><strong><tt>TRUE</tt></strong> si <var><var>$a</var></var> no es igual a <var><var>$b</var></var> después de la manipulación de tipos.</td>
</tr>
<tr valign="middle">
<td align="left">$a !== $b</td>
<td align="left">No idéntico</td>
<td align="left"><strong><tt>TRUE</tt></strong> si <var><var>$a</var></var> no es igual a <var><var>$b</var></var>, o si no son del mismo tipo. (a partir de PHP 4)</td>
</tr>
<tr valign="middle">
<td align="left">$a &lt; $b</td>
<td align="left">Menor que</td>
<td align="left"><strong><tt>TRUE</tt></strong> si <var><var>$a</var></var> es estrictamente menor que <var><var>$b</var></var>.</td>
</tr>
<tr valign="middle">
<td align="left">$a &gt; $b</td>
<td align="left">Mayor que</td>
<td align="left"><strong><tt>TRUE</tt></strong> si <var><var>$a</var></var> es estrictamente mayor que <var><var>$b</var></var>.</td>
</tr>
<tr valign="middle">
<td align="left">$a &lt;= $b</td>
<td align="left">Menor o igual que</td>
<td align="left"><strong><tt>TRUE</tt></strong> si <var><var>$a</var></var> es menor o igual que <var><var>$b</var></var>.</td>
</tr>
<tr valign="middle">
<td align="left">$a &gt;= $b</td>
<td align="left">Mayor o igual que</td>
<td align="left"><strong><tt>TRUE</tt></strong> si <var><var>$a</var></var> es mayor o igual que <var><var>$b</var></var>.</td>
</tr>
</tbody>
</table>
<p><em>Mas información -&gt; <a style="color: #0431b4;" title="Operaciones Aritméticas PHP" href="http://www.php.net/manual/es/language.operators.arithmetic.php" target="_blank">link</a></em></p>
<h2><strong>Operadores de control de errores</strong></h2>
<p><strong>PHP</strong> soporta un operador de control de errores: el signo de arroba (@). Cuando se antepone a una expresión en <strong>PHP</strong>, cualquier mensaje de error que pueden ser generado por esa expresión será ignorado.</p>
<p><em>Mas información -&gt; <a style="color: #0431b4;" title="Operadores de control de errores PHP" href="http://www.php.net/manual/es/language.operators.errorcontrol.php" target="_blank">link</a></em></p>
<h2><strong>Operadores de ejecución</strong></h2>
<p><strong>PHP</strong> soporta un operador de ejecución: las comillas invertidas (&#8220;). ¡Note que estas no son las comillas sencillas! PHP intentará ejecutar el contenido entre las comillas invertidas como si se tratara de un comando del shell; la salida será retornada (es decir, no será simplemente volcada como salida; puede ser asignada a una variable). El uso del operador de comillas invertidas es idéntico al de shell_exec().</p>
<p><em>Mas información -&gt; <a style="color: #0431b4;" title="Operadores de ejecución PHP" href="http://www.php.net/manual/es/language.operators.execution.php" target="_blank">link</a></em></p>
<h2><strong>Operadores de incremento/decremento</strong></h2>
<p>PHP posee operadores pre y post incremento y decremento.</p>
<table>
<thead valign="middle">
<tr valign="middle">
<th>Ejemplo</th>
<th>Nombre</th>
<th>Efecto</th>
</tr>
</thead>
<tbody valign="middle">
<tr valign="middle">
<td align="left">++$a</td>
<td align="left">Pre-incremento</td>
<td align="left">Incrementa <var><var>$a</var></var> en uno, y luego retorna <var><var>$a</var></var>.</td>
</tr>
<tr valign="middle">
<td align="left">$a++</td>
<td align="left">Post-incremento</td>
<td align="left">Retorna <var><var>$a</var></var>, y luego incrementa <var><var>$a</var></var> en uno.</td>
</tr>
<tr valign="middle">
<td align="left">&#8211;$a</td>
<td align="left">Pre-decremento</td>
<td align="left">Decrementa <var><var>$a</var></var> en uno, luego retorna <var><var>$a</var></var>.</td>
</tr>
<tr valign="middle">
<td align="left">$a&#8211;</td>
<td align="left">Post-decremento</td>
<td align="left">Retorna <var><var>$a</var></var>, luego decrementa <var><var>$a</var></var> en uno.</td>
</tr>
</tbody>
</table>
<p><em>Mas información -&gt; <a style="color: #0431b4;" title="Operaciones Aritméticas PHP" href="http://www.php.net/manual/es/language.operators.arithmetic.php" target="_blank">link</a></em></p>
<h2><strong>Operadores lógicos</strong></h2>
<table>
<thead valign="middle">
<tr valign="middle">
<th>Ejemplo</th>
<th>Nombre</th>
<th>Resultado</th>
</tr>
</thead>
<tbody valign="middle">
<tr valign="middle">
<td align="left">$a and $b</td>
<td align="left">And (y)</td>
<td align="left"><strong><tt>TRUE</tt></strong> si tanto <var><var>$a</var></var> como <var><var>$b</var></var> son <strong><tt>TRUE</tt></strong>.</td>
</tr>
<tr valign="middle">
<td align="left">$a or $b</td>
<td align="left">Or (o inclusivo)</td>
<td align="left"><strong><tt>TRUE</tt></strong> si cualquiera de <var><var>$a</var></var> o <var><var>$b</var></var> es <strong><tt>TRUE</tt></strong>.</td>
</tr>
<tr valign="middle">
<td align="left">$a xor $b</td>
<td align="left">Xor (o exclusivo)</td>
<td align="left"><strong><tt>TRUE</tt></strong> si <var><var>$a</var></var> o <var><var>$b</var></var> es <strong><tt>TRUE</tt></strong>, pero no ambos.</td>
</tr>
<tr valign="middle">
<td align="left">! $a</td>
<td align="left">Not (no)</td>
<td align="left"><strong><tt>TRUE</tt></strong> si <var><var>$a</var></var> no es <strong><tt>TRUE</tt></strong>.</td>
</tr>
<tr valign="middle">
<td align="left">$a &amp;&amp; $b</td>
<td align="left">And (y)</td>
<td align="left"><strong><tt>TRUE</tt></strong> si tanto <var><var>$a</var></var> como <var><var>$b</var></var> son <strong><tt>TRUE</tt></strong>.</td>
</tr>
<tr valign="middle">
<td align="left">$a || $b</td>
<td align="left">Or (o inclusivo)</td>
<td align="left"><strong><tt>TRUE</tt></strong> si cualquiera de <var><var>$a</var></var> o <var><var>$b</var></var> es <strong><tt>TRUE</tt></strong>.</td>
</tr>
</tbody>
</table>
<p><em>Mas información -&gt; <a style="color: #0431b4;" title="Operadores lógicos PHP" href="http://www.php.net/manual/es/language.operators.logical.php" target="_blank">link</a></em></p>
<h2><strong>Operadores para strings</strong></h2>
<p>Existen dos operadores para datos tipo string. El primero es el operador de concatenación (&#8216;.&#8217;), el cual retorna el resultado de concatenar sus argumentos derecho e izquierdo. El segundo es el operador de asignación sobre concatenación (&#8216;.=&#8217;), el cual añade el argumento del lado derecho al argumento en el lado izquierdo. Por favor consulte Operadores de asignación para más información.</p>
<p><em>Mas información -&gt; <a style="color: #0431b4;" title="Operadores para strings PHP" href="http://www.php.net/manual/es/language.operators.string.php" target="_blank">link</a></em></p>
<h2><strong>Operadores para arrays</strong></h2>
<table>
<thead valign="middle">
<tr valign="middle">
<th>Ejemplo</th>
<th>Nombre</th>
<th>Resultado</th>
</tr>
</thead>
<tbody valign="middle">
<tr valign="middle">
<td align="left">$a + $b</td>
<td align="left">Unión</td>
<td align="left">Unión de <var><var>$a</var></var> y <var><var>$b</var></var>.</td>
</tr>
<tr valign="middle">
<td align="left">$a == $b</td>
<td align="left">Igualdad</td>
<td align="left"><strong><tt>TRUE</tt></strong> si <var><var>$a</var></var> i <var><var>$b</var></var> tienen las mismas parejas clave/valor.</td>
</tr>
<tr valign="middle">
<td align="left">$a === $b</td>
<td align="left">Identidad</td>
<td align="left"><strong><tt>TRUE</tt></strong> si <var><var>$a</var></var> y <var><var>$b</var></var> tienen las mismas parejas clave/valor en el mismo orden y de los mismos tipos.</td>
</tr>
<tr valign="middle">
<td align="left">$a != $b</td>
<td align="left">Desigualdad</td>
<td align="left"><strong><tt>TRUE</tt></strong> si <var><var>$a</var></var> no es igual a <var><var>$b</var></var>.</td>
</tr>
<tr valign="middle">
<td align="left">$a &lt;&gt; $b</td>
<td align="left">Desigualdad</td>
<td align="left"><strong><tt>TRUE</tt></strong> si <var><var>$a</var></var> no es igual a <var><var>$b</var></var>.</td>
</tr>
<tr valign="middle">
<td align="left">$a !== $b</td>
<td align="left">No-identidad</td>
<td align="left"><strong><tt>TRUE</tt></strong> si <var><var>$a</var></var> no es idéntica a <var><var>$b</var></var>.</td>
</tr>
</tbody>
</table>
<p><em>Mas información -&gt; <a style="color: #0431b4;" title="Operadores para arrays PHP" href="http://www.php.net/manual/es/language.operators.array.php" target="_blank">link</a></em></p>
<h2><strong>Operadores de tipo</strong></h2>
<p><strong>instanceof</strong> se utiliza para determinar si una variable de PHP es un objeto instanciado de una cierta clase</p>
<p><em>Mas información -&gt; <a style="color: #0431b4;" title="Operadores de tipo PHP" href="http://www.php.net/manual/es/language.operators.type.php" target="_blank">link</a></em><img src="http://www.agevaled.com/?ak_action=api_record_view&#038;id=377&#038;type=feed" alt="" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.agevaled.com/2011/08/06/php-operadores/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>PHP &#8211; Tipos de datos</title>
		<link>http://www.agevaled.com/2011/08/06/php-tipos-de-dato/</link>
		<comments>http://www.agevaled.com/2011/08/06/php-tipos-de-dato/#comments</comments>
		<pubDate>Sat, 06 Aug 2011 22:21:43 +0000</pubDate>
		<dc:creator>AgeValed</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Programación]]></category>
		<category><![CDATA[Tutoriales]]></category>
		<category><![CDATA[breaking]]></category>
		<category><![CDATA[PHP Tipos]]></category>
		<category><![CDATA[PHP Type]]></category>
		<category><![CDATA[spotlight]]></category>
		<category><![CDATA[Tipo Boolean]]></category>
		<category><![CDATA[Tipo Float]]></category>
		<category><![CDATA[Tipo Integer]]></category>
		<category><![CDATA[Tipo String]]></category>
		<category><![CDATA[Tipos de datos]]></category>

		<guid isPermaLink="false">http://www.agevaled.com/?p=392</guid>
		<description><![CDATA[En la segunda entrega de esta seguidilla de post, vamos a hablar en los tipos primitivos que soporta PHP. Este post sera un resumen hecho de la pagina de PHP. Los tipos de datos se dividen en las siguientes categorías: Escalares, Compuestos, Especiales y Pseudo-Tipos; dentro de cada uno de ellos se encuentran los distintos [...]]]></description>
			<content:encoded><![CDATA[<p>En la segunda entrega de esta seguidilla de post, vamos a hablar en los tipos primitivos que soporta <strong>PHP</strong>. Este post sera un resumen hecho de la pagina de <strong><a title="Pagina oficial PHP" href="http://www.php.net" target="_blank">PHP</a>.</strong> Los tipos de datos se dividen en las siguientes categorías: Escalares, Compuestos, Especiales y Pseudo-Tipos; dentro de cada uno de ellos se encuentran los distintos tipos de datos que usaremos con regularidad. Tengan en cuenta que por lo general <strong>PHP</strong> no necesita que se le especifique a una variable que tipo de dato va a ser, en algunos casos particulares si, pero por lo general no es necesario.</p>
<p>Espero que les sea útil, y cualquier cosa me consultan. Por lo menos a mi me es útil para refrescar conocimientos, aprender pequeños detalles que uno no había prestado atención con anterioridad, en fin&#8230; Empecemos! </p>
<ul>
<li><strong>Tipos Escalares:</strong></li>
<ul>
<li><strong>Boolean</strong> &#8211; <a title="Tipos Boolean" href="http://www.php.net/manual/es/language.types.boolean.php" target="_blank">Link</a></li>
<ul>
<li>El <strong>boolean</strong> expresa un valor de verdad, puede ser <strong>TRUE</strong> o <strong>FALSE</strong></li>
</ul>
<li><strong>Integer</strong> &#8211; <a title="Tipo Integer" href="http://www.php.net/manual/es/language.types.integer.php" target="_blank">Link</a></li>
<ul>
<li>Un <strong>entero</strong> o <strong>integer</strong> es un número del conjunto Z = {&#8230;, -2, -1, 0, 1, 2, &#8230;}. Pueden ser especificados en notación decimal (base 10), hexadecimal (base 16) u octal (base 8).</li>
</ul>
<li><strong>Float</strong> &#8211; <a title="Tipo Float" href="http://www.php.net/manual/es/language.types.float.php" target="_blank">Link</a></li>
<ul>
<li>Los números de punto flotante (también conocidos como &#8220;flotantes&#8221;, &#8220;dobles&#8221; o &#8220;números reales&#8221;) pueden ser especificados usando cualquiera de las siguientes sintaxis:<strong> $a = 1.234;  $b = 1.2e3;  $c = 7E-10;</strong></li>
</ul>
<li><strong><strong>String </strong></strong>- <a title="Tipo String" href="http://www.php.net/manual/es/language.types.string.php" target="_blank">Link</a></li>
<ul>
<li>Un <strong>string </strong>es una serie de caracteres, y por lo tanto, un caracter es lo mismo que un byte. Es decir, hay exactamente 256 diferentes caracteres posibles. Esto implica tambien que <strong>PHP</strong> no tiene soporte nativo para Unicode. Consulte <a href="http://www.php.net/manual/es/function.utf8-encode.php" target="_blank">utf8_encode()</a> y <a href="http://www.php.net/manual/es/function.utf8-decode.php" target="_blank">utf8_decode()</a> para informarse de la funcionalidad básica de Unicode.</li>
<li><strong>Sintaxis</strong>, un string puede especificase de cuatro formas diferente.</li>
<ul>
<li><strong>Comillas Simples</strong></li>
<ul>
<li>echo &#8217;Esto es una cadena sencilla&#8217;;</li>
</ul>
<li><strong>Comillas Dobles</strong> &#8211; Si un string está encerrado entre comillas dobles (&#8220;), <strong>PHP</strong> interpretará más sentencias de escape como caracteres especiales:</li>
<ul>
<li>echo &#8221;Esto es una $test&#8221;;</li>
</ul>
<li><strong>Sintaxis Heredoc</strong> - Una tercera forma de delimitar strings es mediante la sintaxis heredoc: <strong>&lt;&lt;&lt;</strong>. Después de este operador, se deberá ofrecer un identificador y después una nueva línea. A continuación va el propio string, y para cerrar la notación se pone el mismo identificador.</li>
<ul>
<li>$str = &lt;&lt;&lt;EOD<br />
Ejemplo de una cadena<br />
expandida en varias líneas<br />
empleando la sintaxis heredoc.<br />
EOD;</li>
</ul>
<li><strong>Sintaxis Nowdoc</strong> - Nowdocs son a las cadenas con comillas simples lo mismo que Heredoc lo es a las comillas dobles. Una cadena nowdoc se especifica de forma análoga a la heredoc, pero <em>no se realiza ningún análisis</em> dentro de nowdoc. Esta construcción es ideal para embeber codigo PHP o grandes fragmentos de texto sin necesidad de escaparlo. Comparte algunas características comunes con la construcción SGML <em>&lt;![CDATA[ ]]&gt;</em>, donde se declara un fragmento de texto que no debe ser analizado.</li>
<ul>
<li>$str = &lt;&lt;&lt;&#8217;EOD&#8217;<br />
Ejemplo de una cadena<br />
expandida en varias líneas<br />
empleando la sintaxis nowdoc.<br />
EOD;</li>
</ul>
</ul>
</ul>
</ul>
</ul>
<ul>
<li><strong>Tipos Compuestos:</strong></li>
<ul>
<li><strong>Array</strong> &#8211; <a title="Tipo Array" href="http://www.php.net/manual/es/language.types.array.php" target="_blank">Link</a>
<ul>
<li>Un <strong>array </strong>(<strong>matriz</strong>) en <strong>PHP</strong> es en realidad un mapa ordenado. Un mapa es un tipo de datos que asocia <em>valores</em> con <em>claves</em>. Este tipo es optimizado para varios usos diferentes; puede ser usado como una matriz real, una lista (vector), tabla asociativa (caso particular de implementación de un mapa), diccionario, colección, pila, cola y probablemente más. Ya que los valores de un array pueden ser otros arrays, también es posible crear árboles y arrays multidimensionales.</li>
<li><strong>Sintaxis </strong><strong>Asignación</strong>:</li>
<ul>
<li>$arr = array(&#8220;foo&#8221; =&gt; &#8221;bar&#8221;, 12 =&gt; true);</li>
<li>$arr["foo"] = &#8220;bar&#8221;;</li>
<li>$arr[] = &#8220;bar&#8221;;</li>
</ul>
<li><strong>Sintaxis print</strong>:</li>
<ul>
<li>echo $arr["foo"];</li>
<li>print_r($arr);</li>
<li>var_dump($arr);</li>
</ul>
</ul>
</li>
<li><strong>Object</strong> &#8211; <a title="Tipo Object" href="http://www.php.net/manual/es/language.types.object.php" target="_blank">Link</a></li>
<ul>
<li><strong>Nota:</strong> Este es un tema bastante complejo, por lo tanto sera tratado en otro post, cuando sea creado se agregara el link acá!</li>
<li><strong>Inicialización</strong>:</li>
<ul>
<li>Para crear un nuevo object, utilice la declaración <em>new</em> para instanciar una clase.</li>
</ul>
</ul>
</ul>
</ul>
<ul>
<li><strong>Tipos Especiales:</strong></li>
<ul>
<li><strong>Resource</strong> - <a title="Tipo Resource" href="http://www.php.net/manual/es/language.types.resource.php" target="_blank">Link</a></li>
<ul>
<li>Un valor tipo <strong>resource </strong>es una variable especial, que contiene una referencia a un recurso externo. Los recursos son creados y usados por funciones especiales. Vea el <a href="http://www.php.net/manual/es/resource.php" target="_blank">apéndice</a> para un listado de todas estas funciones y los tipos resource correspondientes.</li>
<li><strong>Conversión a recurso:</strong></li>
<ul>
<li>Dado que las variables resource contienen gestores especiales a archivos abiertos, conexiones con bases de datos, áreas de pintura de imágenes y cosas por el estilo, la conversión a tiporesource carece de sentido</li>
</ul>
<li><strong>Liberación de recursos:</strong></li>
<ul>
<li>Gracias al sistema de conteo de referencias introducido con el Motor Zend de <strong>PHP</strong> <strong>4</strong>, un recurso que ya no es referenciado es detectado automáticamente, y es liberado por el recolector de basura. Por esta razón, rara vez se necesita liberar la memoria manualmente.</li>
</ul>
</ul>
<li><strong>NULL </strong>- <a title="Tipo NULL" href="http://www.php.net/manual/es/language.types.null.php" target="_blank">Link</a></li>
<ul>
<li>El valor especial <strong>NULL</strong> representa una variable sin valor. <strong>NULL </strong>es el unico posible valor de tipo <strong>NULL</strong>.</li>
<li><strong>Una variable es considerada null si:</strong></li>
<ul>
<li>Se le ha asignado la constante <strong>NULL</strong>.</li>
<li>No se ha establecido en un valor todavía.</li>
<li>Se ha <strong>unset()</strong>.</li>
</ul>
</ul>
</ul>
</ul>
<ul>
<li><strong>Y también, por razones de legalidad, existen los pseudo-tipos:</strong></li>
<ul>
<li><strong>Mixed</strong>- <a title="Tipo Mixed" href="http://www.php.net/manual/es/language.pseudo-types.php#language.types.mixed" target="_blank">Link</a></li>
<ul>
<li><strong>Mixed</strong> indica que un parámetro puede aceptar múltiples tipos (pero no necesariamente todos).</li>
</ul>
<li><strong>Number</strong>- <a title="Tipo Number" href="http://www.php.net/manual/es/language.pseudo-types.php#language.types.number" target="_blank">Link</a></li>
<ul>
<li><strong>Number</strong> indica que un parámetro puede ser tanto un integer como un float.</li>
</ul>
<li><strong>Callback</strong>- <a title="Tipo Callback" href="http://www.php.net/manual/es/language.pseudo-types.php#language.types.callback" target="_blank">Link</a></li>
<ul>
<li>Algunas funciones como <a href="http://www.php.net/manual/es/function.call-user-func.php" target="_blank">call_user_func()</a> o <a href="http://www.php.net/manual/es/function.usort.php" target="_blank">usort()</a> pueden aceptar como parámetro funciones de devolución de llamada definidas por el usuario. Las funciones de devolución de llamada no sólo pueden ser funciones simples, sino también pueden ser métodos <a href="http://www.php.net/manual/es/language.types.object.php" target="_blank">object</a>, incluyendo métodos de clases estáticas.</li>
<li>Una función de PHP puede ser pasada por su nombre como un <a href="http://www.php.net/manual/es/language.types.string.php" target="_blank">string</a>. Cualquier función incorporada o definida por el usuario puede ser usada, excepto los constructores de lenguaje como:<a href="http://www.php.net/manual/es/function.array.php" target="_blank">array()</a>, <a href="http://www.php.net/manual/es/function.echo.php">echo()</a>, <a href="http://www.php.net/manual/es/function.empty.php" target="_blank">empty()</a>, <a href="http://www.php.net/manual/es/function.eval.php" target="_blank">eval()</a>, <a href="http://www.php.net/manual/es/function.exit.php" target="_blank">exit()</a>, <a href="http://www.php.net/manual/es/function.isset.php" target="_blank">isset()</a>, <a href="http://www.php.net/manual/es/function.list.php" target="_blank">list()</a>, <a href="http://www.php.net/manual/es/function.print.php" target="_blank">print()</a> o <a href="http://www.php.net/manual/es/function.unset.php" target="_blank">unset()</a>.</li>
<li>Un método de un <a href="http://www.php.net/manual/es/language.types.object.php" target="_blank">object</a> instanciado puede ser pasado como un <a href="http://www.php.net/manual/es/language.types.array.php" target="_blank">array</a> conteniendo un <a href="http://www.php.net/manual/es/language.types.object.php" target="_blank">object</a> en el índice 1 y el nombre del método en el índice 1.</li>
<li>Los métodos de clases estáticas también pueden ser pasdos sin instanciar un <a href="http://www.php.net/manual/es/language.types.object.php" target="_blank">object</a> de la clase pasando en el índice 0 el nombre de la clase en lugar del <a href="http://www.php.net/manual/es/language.types.object.php" target="_blank">object</a>.</li>
<li>Junto a las típicas funciones definidas por el usuario, tambien se puede usar <a href="http://www.php.net/manual/es/function.create-function.php" target="_blank">create_function()</a> para crear una función de devolución de llamada anónima. Desde PHP 5.3.0 también es posible pasar un <a href="http://www.php.net/manual/es/functions.anonymous.php" target="_blank">cierre</a> como un parámetro de devolución.</li>
</ul>
<li><strong>Void</strong>- <a title="Tipo Void" href="http://www.php.net/manual/es/language.pseudo-types.php#language.types.void" target="_blank">Link</a></li>
<ul>
<li><strong>void</strong> como un tipo de variable de retorno significa que el valor de retorno no es útil. <strong>void</strong> en una lista de parámetros significa que la función no acepta ningún parámetro.</li>
<li>$&#8230; en el prototipo de funciones significa and so on. Este nombre de variable se usa cuando una función puede tomar un número infinito de argumentos.</li>
</ul>
</ul>
</ul>
<p>Los tipos de una variable usualmente no son declaradas por el programador, es decidido en tiempo de ejecución por PHP dependiendo del contexto en el que se este utilizando la variable.</p>
<p>Espero que les sea util! y espero sus comentarios al respecto&#8230;<img src="http://www.agevaled.com/?ak_action=api_record_view&#038;id=392&#038;type=feed" alt="" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.agevaled.com/2011/08/06/php-tipos-de-dato/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>PHP &#8211; Sintaxis Básicas</title>
		<link>http://www.agevaled.com/2011/08/05/php-sintaxis-basicas/</link>
		<comments>http://www.agevaled.com/2011/08/05/php-sintaxis-basicas/#comments</comments>
		<pubDate>Fri, 05 Aug 2011 04:32:17 +0000</pubDate>
		<dc:creator>AgeValed</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Programación]]></category>
		<category><![CDATA[Tutoriales]]></category>
		<category><![CDATA[breaking]]></category>
		<category><![CDATA[comentarios]]></category>
		<category><![CDATA[php comentarios]]></category>
		<category><![CDATA[php puntuacion]]></category>
		<category><![CDATA[php tags]]></category>
		<category><![CDATA[puntuacion]]></category>
		<category><![CDATA[sintaxis]]></category>
		<category><![CDATA[sintaxis basicas]]></category>
		<category><![CDATA[spotlight]]></category>
		<category><![CDATA[tags]]></category>

		<guid isPermaLink="false">http://www.agevaled.com/?p=357</guid>
		<description><![CDATA[Estoy preparándome para dar la certificación de PHP, y a medida q vaya leyendo cosas voy a ir escribiéndolas en el blog, ya sean cosas básicas que están en la guía de estudio, o dudas que me vayan surgiendo, mas que nada para ir compartiendo información. Bueno sin mas vueltas vamos a empezar con el tema que [...]]]></description>
			<content:encoded><![CDATA[<p>Estoy preparándome para dar la <strong>certificación de PHP</strong>, y a medida q vaya leyendo cosas voy a ir escribiéndolas en el blog, ya sean cosas básicas que están en la guía de estudio, o dudas que me vayan surgiendo, mas que nada para ir compartiendo información.</p>
<p>Bueno sin mas vueltas vamos a empezar con el tema que comente el post, <strong>Sintaxis Básicas,</strong> lo cual podemos separarlos en 3 temas principales; <strong>Tags,</strong>  <strong>Puntuación</strong> y <strong>Comentarios.</strong></p>
<p><strong>Tags:</strong></p>
<p>Cuando <strong>PHP</strong> interpreta un archivo, el cual, por lo general contiene extensión <strong>PHP, </strong>busca <strong>tags</strong> de apertura y de fin, el cual se encarga de avisarle al interpretador donde comienza el código y donde finaliza. Esto nos permite tener código que sera &#8220;<em>ignorado</em>&#8221; por el interpretador. Esto nos puede llegar a ser útil para poder incluir código <strong>HTML</strong>, <strong>Javascript</strong>, <strong>CSS</strong>, entre otros a nuestro archivo.</p>
<p>Etiqueta de apertura y de fin en un archivo <strong>PHP:</strong></p>
<blockquote><p>Observe también que si se está incrustando PHP con XML o XHTML necesitará usar las etiquetas &lt;?php ?&gt; para seguir los estándares.</p>
<p>Example #2 Etiquetas de apertura y de fin de bloque de PHP<br />
1. &lt;?php echo &#8216;si se quiere mostrar documentos XHTML o XML, debe hacerse así&#8217;; ?&gt;</p>
<p>2. &lt;script language=&#8221;php&#8221;&gt;<br />
echo &#8216;algunos editores (como FrontPage) no les gusta<br />
las instruciones de proceso&#8217;;<br />
&lt;/script&gt;</p>
<p>3. &lt;? echo &#8216;esta es la forma más simple, una instrución de procesado SGML&#8217;; ?&gt;<br />
&lt;?= expression ?&gt; Esto es una forma corta para &#8220;&lt;? echo expression ?&gt;&#8221;</p>
<p>4. &lt;% echo &#8216;Quizá use de forma opcional etiquetas de estilo ASP&#8217;; %&gt;<br />
&lt;%= $variable; # Esto es una forma corta para &#8220;&lt;% echo . . .&#8221; %&gt;</p></blockquote>
<p><em>Mas información -&gt; <a title="Tags - PHP" href="http://www.php.net/manual/es/language.basic-syntax.phpmode.php" target="_blank">link</a></em></p>
<p><strong>Puntuación:</strong></p>
<p><strong>PHP</strong> requiere que las instrucciones terminen con un <strong>punto y coma</strong> al final de cada declaración.</p>
<pre class="brush: php; gutter: true">echo 'Esto es una prueba';</pre>
<p><em>Mas información -&gt; <a title="Puntuación - PHP" href="http://www.php.net/manual/es/language.basic-syntax.instruction-separation.php" target="_blank">link</a></em></p>
<p><strong>Comentarios:</strong></p>
<p>Los comentarios soportados por PHP, son los siguientes!</p>
<pre class="brush: php; gutter: true">// Esto es un comentario estilo c++ de una sola línea

# Esto es un comentario estilo consola de una sola línea

/* Esto es un comentario multi-línea
       si! otra línea de comentarios */</pre>
<p><em>Mas información -&gt; <a title="Comentarios- PHP" href="http://www.php.net/manual/es/language.basic-syntax.comments.php" target="_blank">link</a></em><img src="http://www.agevaled.com/?ak_action=api_record_view&#038;id=357&#038;type=feed" alt="" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.agevaled.com/2011/08/05/php-sintaxis-basicas/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Zend Framework &#8211; Mail Templates usando Zend_Mail &amp; Zend_View</title>
		<link>http://www.agevaled.com/2011/07/18/mail-template-zend-mail-zend-view/</link>
		<comments>http://www.agevaled.com/2011/07/18/mail-template-zend-mail-zend-view/#comments</comments>
		<pubDate>Mon, 18 Jul 2011 19:01:00 +0000</pubDate>
		<dc:creator>AgeValed</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Programación]]></category>
		<category><![CDATA[mail]]></category>
		<category><![CDATA[template]]></category>
		<category><![CDATA[template mail]]></category>
		<category><![CDATA[Zend]]></category>
		<category><![CDATA[zend framework]]></category>
		<category><![CDATA[zend mail]]></category>
		<category><![CDATA[zend template mail]]></category>
		<category><![CDATA[zend view]]></category>

		<guid isPermaLink="false">http://www.agevaled.com/?p=339</guid>
		<description><![CDATA[Me pareció útil compartir esta función con el resto de los programadores, esta función no es de mi autoría, el creador es Jonathan Street, yo solamente la arregle un poco ya que tenia un par de errores, le agregue una función para que se le pueda pasar los parámetros que uno quiere, y alguna que otra cosita mas. Esta función es muy útil para enviar templates [...]]]></description>
			<content:encoded><![CDATA[<p>Me pareció útil compartir esta función con el resto de los programadores, esta función no es de mi autoría, el creador es <strong><a title="Email templates using Zend_Mail and Zend_View" href="http://jonathanstreet.com/blog/email-templates-using-zend-framework/" target="_blank">Jonathan Street</a></strong>, yo solamente la arregle un poco ya que tenia un par de errores, le agregue una función para que se le pueda pasar los parámetros que uno quiere, y alguna que otra cosita mas.</p>
<p>Esta función es muy útil para enviar <strong>templates</strong> de <strong>mails</strong> en<strong> Zend Framework</strong>, utilizando <strong>Zend</strong> <strong>View</strong> y <strong>Zend</strong> <strong>Mail</strong>, pueden ser archivos con <strong>texto</strong> <strong>plano</strong>, archivos <strong>HTML</strong>, o archivos con <strong>HTML</strong> y <strong>PHP</strong>! Tan solo tienen q hacer lo siguiente..</p>
<p>1) Tienen que agregar al archivo de configuración las siguientes lineas:</p>
<pre class="brush: php; gutter: true">settings.email = "service@sparkboxtoys.com"
settings.template.dir = APPLICATION_PATH "/theme/mail_template/"</pre>
<p>en &#8220;settings.template.dir&#8221; pongan el directorio donde estarán puestos los mail&#8217;s template.</p>
<p>La extensión de los mismos pueden ser:</p>
<ul>
<li><strong>TXT</strong> si van a ser textos planos.</li>
<li><strong>PHTML</strong> si van a ser mails con html y/o php (para enviarles paramentos)</li>
</ul>
<p>2) Dentro de la carpeta <strong>library</strong> crear los directorios y archivo correspondientes (tener en cuenta las mayúsculas)</p>
<p>/App/Mail/Template.php</p>
<p>3) Dentro del archivo Template.php copiar el siguiente código:</p>
<pre class="brush: php; gutter: true">/**
 * A template based email system
 *
 * Supports the sending of multipart txt/html emails based on templates
 *
 */
class App_Mail_Template
{

    /**
     * Variable registry for template values
     */
    protected $templateVariables = array();

    /**
     * Template name
     */
    protected $templateName;

    /**
     * Zend_Mail instance
     */
    protected $zendMail;

    /**
     * Email recipient
     */
    protected $recipient;

    /**
     * Email subject
     */
    protected $subject;

    /**
     * __construct
     *
     * Set default options
     *
     */
    public function __construct ()
    {
        $this-&gt;zendMail = new Zend_Mail();
    }

    /**
     * Set variables for use in the templates
     *
     * Magic function stores the value put in any variable in this class for
     * use later when creating the template
     *
     * @param string $name  The name of the variable to be stored
     * @param mixed  $value The value of the variable
     */
    public function __set ($name, $value)
    {
        $this-&gt;templateVariables[$name] = $value;
    }

    public function setVariables($data)
    {
        foreach($data as $key =&gt; $value){
            $this-&gt;__set($key,$value);
        }
    }

    /**
     * Set the subject to use
     *
     * @param string $subject Subject text
     */
    public function setSubject ($subject)
    {
        $this-&gt;subject = $subject;
    }

    /**
     * Set the template file to use
     *
     * @param string $filename Template filename
     */
    public function setTemplate ($filename)
    {
        $this-&gt;templateName = $filename;
    }

    /**
     * Set the recipient address for the email message
     *
     * @param string $email Email address
     */
    public function setRecipient ($email)
    {
        $this-&gt;recipient = $email;
    }

    /**
     * Send the constructed email
     *
     * @todo Add from name
     */
    public function send ()
    {
        /*
         * Get data from config
         * - From address
         * - Directory for template files
         */
        $config = Zend_Registry::get('config');
        $templateDir = $config-&gt;settings-&gt;template-&gt;dir;
        $fromAddr = $config-&gt;settings-&gt;email;

        //Build template
        //Check that template file exists before using
        $viewConfig = array('basePath' =&gt; $templateDir);
        $subjectView = new Zend_View($viewConfig);

        foreach ($this-&gt;templateVariables as $key =&gt; $value)
        {
            $subjectView-&gt;{$key} = $value;
        }

        $textView = new Zend_View($viewConfig);
        foreach ($this-&gt;templateVariables as $key =&gt; $value)
        {
            $textView-&gt;{$key} = $value;
        }
        try {
            $text = $textView-&gt;render($this-&gt;templateName . '.txt');
        } catch (Zend_View_Exception $e) {
            $text = false;
        }

        $htmlView = new Zend_View($viewConfig);
        foreach ($this-&gt;templateVariables as $key =&gt; $value)
        {
            $htmlView-&gt;{$key} = $value;
        }

        try {
            $html = $htmlView-&gt;render($this-&gt;templateName . '.phtml');
        } catch (Zend_View_Exception $e) {
            $html = false;
        }

        //var_dump($subject);
        //var_dump($text);
        //var_dump($html);

        //Pass variables to Zend_Mail
        $mail = new Zend_Mail();
        //var_dump($fromAddr);
        $mail-&gt;setFrom($fromAddr);
        //var_dump($this-&gt;recipient);
        $mail-&gt;addTo($this-&gt;recipient);

        $mail-&gt;setSubject($this-&gt;subject);

        if ($html !== false) {
            $mail-&gt;setBodyText($text);
        }

        if ($html !== false) {
            $mail-&gt;setBodyHtml($html);
        }

        //Send email
        $mail-&gt;send();
    }

}</pre>
<p>4) Luego en el archivo en el cual vas a enviar el mail copiar el siguiente código:</p>
<pre class="brush: php; gutter: true">$emailObj = new App_Mail_Template;
$emailObj-&gt;setRecipient('test@avlog.com.ar');
$emailObj-&gt;setTemplate('welcome');
$dataArray = array(
    'name' =&gt; 'Pablo',
    'mail' =&gt; 'test@avlog.com.ar',
);
$emailObj-&gt;setSubject('Welcome to AgeValed!');
$emailObj-&gt;setVariables($dataArray);
$emailObj-&gt;send();</pre>
<p>Con esto estamos enviando un mail del archivo welcome.phtml q adentro tiene los parámetros $this-&gt;name y $this-&gt;mail</p>
<p>Espero que les sea útil, cualquier consulta no duden en escribirme!<img src="http://www.agevaled.com/?ak_action=api_record_view&#038;id=339&#038;type=feed" alt="" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.agevaled.com/2011/07/18/mail-template-zend-mail-zend-view/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>ZendCon 2010 Podcast &#8211; Introducción Zend Framework 2.0</title>
		<link>http://www.agevaled.com/2011/01/26/zendcon-2010-podcast-introduccion-zend-framework-2-0/</link>
		<comments>http://www.agevaled.com/2011/01/26/zendcon-2010-podcast-introduccion-zend-framework-2-0/#comments</comments>
		<pubDate>Wed, 26 Jan 2011 16:33:24 +0000</pubDate>
		<dc:creator>AgeValed</dc:creator>
				<category><![CDATA[Novedades]]></category>
		<category><![CDATA[introduccion zend framework]]></category>
		<category><![CDATA[Zend]]></category>
		<category><![CDATA[zend framework]]></category>
		<category><![CDATA[zend framework 2.0]]></category>
		<category><![CDATA[zendcon 2010]]></category>

		<guid isPermaLink="false">http://www.agevaled.com/?p=300</guid>
		<description><![CDATA[Acá les dejo una introducción sobre Zend Framework 2.0, una charla en ZendCom 2010 Podcast, los oradores de la charla fueron Ralph Schindler (Penn) y Matthew Weier O&#8217;Phinney (Teller). Presentación: Audio: Las sesiones ZendCon se distribuye bajo una licencia creative commons Attribution-Noncommercial-No Derivative Works 3.0, por favor cumple con esta licencia y los derechos de [...]]]></description>
			<content:encoded><![CDATA[<p>Acá les dejo una introducción sobre Zend Framework 2.0, una charla en ZendCom 2010 Podcast, los oradores de la charla fueron<strong> Ralph Schindler</strong> (Penn) y <strong>Matthew Weier O&#8217;Phinney</strong> (Teller).</p>
<p><strong>Presentación:</strong></p>
<p><iframe src="http://www.slideshare.net/slideshow/embed_code/5673722" width="400" height="337" frameborder="0" marginwidth="0" marginheight="0" scrolling="no"></iframe><br/><br/></p>
<p><strong>Audio:</strong></p>
<p><!-- Begin MP3 Player for Wordpress Version "1.2.4"--></p>
<div align="left" id="playerMini1">
  <object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab" width="73" height="30"><param name="wmode" value="transparent"><param name="movie" value="http://www.agevaled.com/wp-content/plugins/mp3-player-plugin-for-wordpress/player_options/playerMini.swf" /><param name="FlashVars" value="autoPlay=no&amp;soundPath=http://www.eschrade.com/media/podcasts/Introducing%20Zend%20Framework%202.mp3?var1=mp3/no&amp;overColor=#1FBF26&amp;playerSkin=3"/><!--[if !IE]> <--><br />
<script type="text/javascript" src="http://www.agevaled.com/wp-content/plugins/mp3-player-plugin-for-wordpress/swfobject.js"></script></p>
<div id="flashPlayerplayerMini1">
<img src="http://www.agevaled.com/wp-content/plugins/mp3-player-plugin-for-wordpress/img/noflash.gif" alt="Flash required " />
</div>
<p><script type="text/javascript">
   var so = new SWFObject("http://www.agevaled.com/wp-content/plugins/mp3-player-plugin-for-wordpress/player_options/playerMini.swf", "mymovie", "73", "30", "7", "#FFFFFF");  
   so.addParam("wmode", "transparent")
   so.addVariable("autoPlay","no")
   so.addVariable("overColor","#1FBF26")
   so.addVariable("playerSkin","3")
   so.addVariable("soundPath","http://www.eschrade.com/media/podcasts/Introducing%20Zend%20Framework%202.mp3?var1=mp3/no")
   so.write("flashPlayerplayerMini1");
</script><br />
<!--> <![endif]--><br />
</object></div>
<p><!-- End MP3 Player for Wordpress Version "1.2.4"--></p>
<p>Las sesiones ZendCon se distribuye bajo una licencia creative commons Attribution-Noncommercial-No Derivative Works 3.0, por favor cumple con esta licencia y los derechos de nuestros autores.</p>
<p><img src="http://i.creativecommons.org/l/by-nc-nd/3.0/us/80x15.png" alt="creativecommons" /></p>
<p>Espero que les resulte interesante! saludos!</p>
<p>Referencia: <a href="http://devzone.zend.com/article/12955-ZendCon-2010-Podcast---Introducing-Zend-Framework-2.0?goback=.gde_728287_news_340510423"> DevZone Zend </a><img src="http://www.agevaled.com/?ak_action=api_record_view&#038;id=300&#038;type=feed" alt="" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.agevaled.com/2011/01/26/zendcon-2010-podcast-introduccion-zend-framework-2-0/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
<enclosure url="http://www.eschrade.com/media/podcasts/Introducing%20Zend%20Framework%202.mp3" length="51765926" type="audio/mpeg" />
		</item>
		<item>
		<title>Listado de Provincia y Localidades Argentinas &#8211; Base de Datos</title>
		<link>http://www.agevaled.com/2011/01/09/listado-de-provincia-y-localidades-argentinas-base-de-dato/</link>
		<comments>http://www.agevaled.com/2011/01/09/listado-de-provincia-y-localidades-argentinas-base-de-dato/#comments</comments>
		<pubDate>Sun, 09 Jan 2011 04:05:58 +0000</pubDate>
		<dc:creator>AgeValed</dc:creator>
				<category><![CDATA[AVLog]]></category>
		<category><![CDATA[Base de Datos]]></category>
		<category><![CDATA[argentina]]></category>
		<category><![CDATA[base de datos]]></category>
		<category><![CDATA[base de datos argentina]]></category>
		<category><![CDATA[base de datos localidades]]></category>
		<category><![CDATA[base de datos provincias]]></category>
		<category><![CDATA[listado de las provincias y localidades argentinas]]></category>
		<category><![CDATA[listado de localidades]]></category>
		<category><![CDATA[listaod de provincias]]></category>
		<category><![CDATA[localidades argentinas]]></category>
		<category><![CDATA[provincias argentinas]]></category>
		<category><![CDATA[provincias y localidades]]></category>

		<guid isPermaLink="false">http://www.agevaled.com/?p=273</guid>
		<description><![CDATA[Les dejo un archivo con un listado de las provincias y localidades argentinas, listo para insertar en nuestra base de datos, la cual cuenta con 2 tablas, una es un listado de las provincias con su respectivo ID y la segunda es un listado de las localidades con su respectiva ID y con el ID [...]]]></description>
			<content:encoded><![CDATA[<p>Les dejo un archivo con un <strong>listado de las provincias y localidades argentinas</strong>, listo para insertar en nuestra base de datos, la cual cuenta con 2 tablas, una es un listado de las <strong>provincias </strong>con su respectivo ID y la segunda es un listado de las <strong>localidades </strong>con su respectiva ID y con el ID de la provincia a la cual pertenece.</p>
<p>Espero que les sirva para su proyecto o para cualquier cosa que lo lleguen a utilizar.</p>
<p><strong>Link de Descarga:</strong></p>
<p><a href="http://www.agevaled.com/wp-content/uploads/provincias y localidades.txt"><img class="aligncenter size-full wp-image-275" title="icono_descargar-150x150" src="http://www.agevaled.com/wp-content/uploads/2011/01/icono_descargar-150x150.png" alt="" width="150" height="150" /></a><img src="http://www.agevaled.com/?ak_action=api_record_view&#038;id=273&#038;type=feed" alt="" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.agevaled.com/2011/01/09/listado-de-provincia-y-localidades-argentinas-base-de-dato/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Android SDK, Solucion: JDK not found, en la instalación.</title>
		<link>http://www.agevaled.com/2011/01/09/android-sdk-solucion/</link>
		<comments>http://www.agevaled.com/2011/01/09/android-sdk-solucion/#comments</comments>
		<pubDate>Sun, 09 Jan 2011 03:37:51 +0000</pubDate>
		<dc:creator>AgeValed</dc:creator>
				<category><![CDATA[Tutoriales]]></category>
		<category><![CDATA[Android]]></category>
		<category><![CDATA[Android SDK R08]]></category>
		<category><![CDATA[error android]]></category>
		<category><![CDATA[instalar android]]></category>
		<category><![CDATA[install andrpod]]></category>
		<category><![CDATA[java SE development kit]]></category>
		<category><![CDATA[jDK]]></category>
		<category><![CDATA[JDK not found]]></category>
		<category><![CDATA[SDK]]></category>

		<guid isPermaLink="false">http://www.agevaled.com/?p=265</guid>
		<description><![CDATA[Queriendo instalar Android SDK R08 (descargar), sobre Windows 7 64 Bit y teniendo instalado en la PC JDK 6 64bit, el instalador me tiro el siguiente mensaje: Dando vueltas por Internet encontré la siguiente discusión, como siempre stackoverflow, nos da una mano en todo! Siguiendo unos simples pasos podemos solucionarlo: Correr regedit. Encontrar [HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Development [...]]]></description>
			<content:encoded><![CDATA[<p>Queriendo instalar <strong>Android SDK R08</strong> (<a title="Android SDK" href="http://developer.android.com/sdk/index.html" target="_blank">descargar</a>), sobre <em>Windows 7 64 Bit</em> y teniendo instalado en la PC<em> JDK 6 64bit</em>, el instalador me tiro el siguiente mensaje:</p>
<p><a href="http://www.agevaled.com/wp-content/uploads/2011/01/jdknotfound.jpg"><img class="aligncenter size-full wp-image-267" title="jdknotfound" src="http://www.agevaled.com/wp-content/uploads/2011/01/jdknotfound.jpg" alt="" width="496" height="360" /></a></p>
<p>Dando vueltas por Internet encontré la siguiente <a title="Android SDK install problem" href="http://stackoverflow.com/questions/4394584/android-sdk-install-problem" target="_self">discusión</a>, como siempre <em>stackoverflow</em>, nos da una mano en todo!</p>
<p>Siguiendo unos simples pasos podemos solucionarlo:</p>
<ol>
<li>Correr regedit.</li>
<li>Encontrar [HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Development Kit]</li>
<li>Click derecho sobre &#8220;Java Development Kit&#8221;, click Export, y guardar el archivo en el desktop.</li>
<li>Click derecho y click en edit</li>
<li>Agregar Wow6432Node al path por cada key en el archivo, ver ejemplo a continuación, y guardar.</li>
<li>Volver al regedit, click en File-&gt;Import y seleccionamos el archivo.</li>
<li>Intentar instalar nuevamente SDK.</li>
</ol>
<p>Antes:</p>
<blockquote><p>Windows Registry Editor Version 5.00</p>
<p>[HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Development Kit]<br />
&#8220;CurrentVersion&#8221;=&#8221;1.6&#8243;</p>
<p>[HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Development Kit\1.6]<br />
&#8220;JavaHome&#8221;=&#8221;C:\\Program Files\\Java\\jdk1.6.0_23&#8243;<br />
&#8220;MicroVersion&#8221;=&#8221;0&#8243;</p>
<p>[HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Development Kit\1.6.0_21]<br />
&#8220;JavaHome&#8221;=&#8221;C:\\Program Files\\Java\\jdk1.6.0_21&#8243;<br />
&#8220;MicroVersion&#8221;=&#8221;0&#8243;</p>
<p>[HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Development Kit\1.6.0_23]<br />
&#8220;JavaHome&#8221;=&#8221;C:\\Program Files\\Java\\jdk1.6.0_23&#8243;<br />
&#8220;MicroVersion&#8221;=&#8221;0&#8243;</p></blockquote>
<p>Despues:</p>
<blockquote><p>Windows Registry Editor Version 5.00</p>
<p>[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\JavaSoft\Java Development Kit]<br />
&#8220;CurrentVersion&#8221;=&#8221;1.6&#8243;</p>
<p>[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\JavaSoft\Java Development Kit\1.6]<br />
&#8220;JavaHome&#8221;=&#8221;C:\\Program Files\\Java\\jdk1.6.0_23&#8243;<br />
&#8220;MicroVersion&#8221;=&#8221;0&#8243;</p>
<p>[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\JavaSoft\Java Development Kit\1.6.0_21]<br />
&#8220;JavaHome&#8221;=&#8221;C:\\Program Files\\Java\\jdk1.6.0_21&#8243;<br />
&#8220;MicroVersion&#8221;=&#8221;0&#8243;</p>
<p>[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\JavaSoft\Java Development Kit\1.6.0_23]<br />
&#8220;JavaHome&#8221;=&#8221;C:\\Program Files\\Java\\jdk1.6.0_23&#8243;<br />
&#8220;MicroVersion&#8221;=&#8221;0&#8243;</p></blockquote>
<p>Y listo ya podemos continuar! Espero q les sea util.<img src="http://www.agevaled.com/?ak_action=api_record_view&#038;id=265&#038;type=feed" alt="" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.agevaled.com/2011/01/09/android-sdk-solucion/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
	</channel>
</rss>

