Dado que en PHP las variables no tienen un tipo asignado y éste puede cambiar “al vuelo” en tiempo de ejecución, conviene tener en cuenta cómo serán evaluadas las comparaciones en PHP:
<?php $a = 0; $b = "0" $c = false; var_dump($a == $b); // 0 == 0 -> true var_dump($a === $b); // 0 == 0 && (integer) == (string) -> false var_dump($a == $c); // 0 == false -> true
4. echo vs print
Estas funciones realizan la misma tarea. Sin embargo, echo es sensiblemente más rápida que print. 5. Concatenación de cadenas, comillas simples(‘) vs comillas dobles(“) Cuando trabajes con cadenas, evita siempre el uso de comillas dobles. La razón es que PHP analiza el contenido de las comillas dobles en búsqueda de variables que deban ser interpretadas, resultando en un tiempo de ejecución mayor.
Emplea siempre la función echo y concatena las cadenas con comas: echo ‘Hola’, $nombre, ‘, ¿qué te trae por aquí? requerirá menos tiempo al compilador que echo ‘Hola’ . $nombre . ‘, ¿qué te trae por aquí?’. Por lo visto en el punto anterior, el “peor caso posible” sería print "Hola $nombre, ¿qué te trae por aquí?" 6. Búsqueda de cadenas y patrones case insensitive La búsqueda de una cadena sin importar mayúsculas/minúsculas (stripos()) es entre un 400% y un 600% más lenta que su equivalente case sensitive, strpos()).
En cuanto a las expresiones regulares, las búsquedas sensibles, preg_match(“/$patron/”, $cadena), son, como norma, ligeramente más eficaces que su equivalente no sensible: preg_match(“/$patron/i”, $cadena).
Si las coincidencias se realizan de modo iterativo (dentro de un bucle for, while, foreach), es recomendable convertir a lowercase o uppercase antes y realizar las operaciones en su versión case sensitive
- Los nombres de las clases en MixedCase. Ejemplo: ElNombreDeMiClase
- Los nombres de los métodos en camelCase. Ejempo: nombreDelMetodo()
- Las constantes siempre en ALL_CAPS. Ejemplo: COLOR_DEFINIDO_PARA_MI
- Las variables, propiedades y parámetros en camelCase. Ejemplo: $variableEnLaQueAlmacenoAlgo
- Los métodos y variables que no sean públicos, precedidos por un guión bajo (underscore-prefixed). Ejemplo: $_miPalabraSecreta
Veámoslo en un ejemplo para ilustrar:
<?php class MyNewClass{ const LIMIT_OF_ITERATIONS = 10; public $myProperty; public $myOtherProperty; protected $_myProtectedProperty; // observa guión bajo por no ser public // constructor function __construct(){ } public function hacerAlgoConMiClase($parametroRecibido){ for ($i = 0; $i < self::LIMIT_OF_ITERATIONS; $i++){ // lo que sea } } public function getMyProtectedProperty(){ return $this->_myProtectedProperty; } }
<?php
class Ipl_Util_Date{
...
public static function timestampToSpanishFormat($date, $dateSeparator,
$timeSeparator = ' a las '){
if ($date == '') return null;
$temp = explode(' ', $date);
if (sizeof($temp) != 2) return null;
$dates = explode('-', $temp[0]);
return $dates[2] . $dateSeparator . $dates[1]
. $dateSeparator . $dates[0]
. $timeSeparator . $temp[1];
}
}
Así, si alguna vez queremos convertir una fecha en formato timestamp a un formato con el que estamos más familiarizados, sólo tenemos que hacer <?php echo Ipl_Util_Date::timestampToSpanishFormat($myDate, ‘/’) ?>.
// mal for ($i = 0, $i < count($miArray); $i++){ ... } // bien $limite = count($miArray); for ($i = 0; $i < $limite; $i++){ ... }
Emplea siempre include o require en vez de include_once o require_once para que el cacheado de código sea más efectivo.
puede ser un determinado caracter (una eñe, por ejemplo), en otra codificación puede ser algo completamente distinto. Si tu público emplea tu misma codificación no hay problema pero, si en un momento dado alguien de, por ejemplo, Rusia entra en tu página, verá la pantalla llena de caracteres sin sentido.
Si tu web va a estar disponible en más de un idioma, es indispensable que tu codificación sea UTF-8 (incluyendo la codificación y colación de la base de datos).
Imagina una estructura de directorios como la siguiente: media/images/2013/03/my_image.jpg. Si AllowOverride está en All, antes de que Apache pueda servir el recurso my_image.jpg, debe recorrer todos los directorios desde la raíz hasta “/03” en búsqueda los archivos .htaccess por si en alguno de ellos se especificase alguna directiva sobre el objeto de la petición.
No hay comentarios:
Publicar un comentario