PHP más rápido usando la punta comas rápida

  • baligena
  • Novice
  • Novice
  • No Avatar
  • Registrado: Abr 15, 2011
  • Mensajes: 25
  • Status: Offline

Nota Abril 17th, 2011, 9:56 am

En PHP puede concatenar con una coma en lugar de un período en el uso de eco. Las comas que usted script más rápido.

ejemplo:

el ayuno:
echo $ var. $ Var2;

el furioso
echo $ var, $ var2;
  • Anonymous
  • Bot
  • No Avatar
  • Registrado: 25 Feb 2008
  • Mensajes: ?
  • Loc: Ozzuland
  • Status: Online

Nota Abril 17th, 2011, 9:56 am

  • natas
  • PHP Ninja
  • Proficient
  • No Avatar
  • Registrado: Mar 28, 2009
  • Mensajes: 305
  • Loc: AFK
  • Status: Offline

Nota Abril 17th, 2011, 10:35 am

solo curiosidad por saber por qué y cómo hacer que el script comas rápido Im. ¿Podría elaborar?
Custom Web Design
  • SpooF
  • ٩๏̯͡๏۶
  • Bronze Member
  • Avatar de Usuario
  • Registrado: May 22, 2004
  • Mensajes: 3415
  • Loc: Richland, WA
  • Status: Offline

Nota Abril 17th, 2011, 12:22 pm

Mi conjetura es uno los combina (las variables) y el otro se ejecuta el comando dos veces.
#define NULL (::rand() % 2)
  • spork
  • Brewmaster
  • Silver Member
  • Avatar de Usuario
  • Registrado: Sep 22, 2003
  • Mensajes: 6130
  • Loc: Seattle, WA
  • Status: Offline

Nota Abril 18th, 2011, 10:44 am

Cerrar.

echo () puede tomar uno más más argumentos para imprimir. Usando una coma simplemente pasa más argumentos para echo ().

Un punto hace que las cuerdas al primer ser concatenados, que es una operación bastante costosa, antes de ser pasado como un solo argumento de echo ().

En cualquier caso, la función sigue siendo sólo llama una vez.
The Beer Monocle. Classy.
  • WritingBadCode
  • Graduate
  • Graduate
  • Avatar de Usuario
  • Registrado: Abr 28, 2011
  • Mensajes: 214
  • Loc: Sweden
  • Status: Offline

Nota Abril 30th, 2011, 7:46 am

¿Hay algún inconveniente (conocido) con el uso de comas?

Por ejemplo podría ser la salida diferentes (de lo que estoy acostumbrado), cuando haciéndose eco de una coma en lugar de puntos?
  • joebert
  • Sledgehammer
  • Genius
  • No Avatar
  • Registrado: Feb 10, 2004
  • Mensajes: 13455
  • Loc: Florida
  • Status: Offline

Nota Abril 30th, 2011, 8:15 am

Su posible , Pero la única vez que va a pasar es más o menos cuando se tratando de de romper algo.

Código: [ Select ]
<?php

class looker
{
    public function __toString()
    {
        return '[' . ob_get_contents() . '] [appended]';
    }
}

ob_start();

echo 'one', new looker(), PHP_EOL;

ob_flush();

echo 'two' . new looker() . PHP_EOL;

?>
  1. <?php
  2. class looker
  3. {
  4.     public function __toString()
  5.     {
  6.         return '[' . ob_get_contents() . '] [appended]';
  7.     }
  8. }
  9. ob_start();
  10. echo 'one', new looker(), PHP_EOL;
  11. ob_flush();
  12. echo 'two' . new looker() . PHP_EOL;
  13. ?>


Código: [ Select ]
joebert@frankenstien:~/Desktop$ php -f _.php
one[one] [appended]
two[] [appended]
  1. joebert@frankenstien:~/Desktop$ php -f _.php
  2. one[one] [appended]
  3. two[] [appended]


Pruebe a cambiar los plazos en la última línea de comas, y ver lo que sucede a la salida.
Strong with this one, the sudo is.
  • WritingBadCode
  • Graduate
  • Graduate
  • Avatar de Usuario
  • Registrado: Abr 28, 2011
  • Mensajes: 214
  • Loc: Sweden
  • Status: Offline

Nota Mayo 1st, 2011, 2:33 pm

Gracias por explicar joebert. No acabo de entender eso, pero su no porque explica de una manera difícil de entender.

Pero hay algo de código que no tengo todavía para jugar y tiene idea de lo que hace poco (ob_get_contents ()), ([anexo]) y (ob_start ()). Voy a mirar hacia atrás en esto cuando yo he hecho algunas investigaciones más y espero que para entonces yo entiendo su mejor ejemplo!
  • joebert
  • Sledgehammer
  • Genius
  • No Avatar
  • Registrado: Feb 10, 2004
  • Mensajes: 13455
  • Loc: Florida
  • Status: Offline

Nota Mayo 1st, 2011, 3:11 pm

Lo que el código está haciendo, está buscando en el búfer de salida mientras que la generación de la cadena que la clase debe devolver.

_toString es cuál es llamado un "método mágico" en las clases de PHP. Básicamente, cada vez que una instancia de una clase, por ejemplo, cuando pasó a su eco, debe devolver una cadena que por cualquier razón, _toString es un método que puede definir en la definición de clase como una forma de determinar cómo la clase devolverá una cadena .

Por ejemplo, si usted tiene una clase denominada "persona" con dos attributres, "first_name" y "apellidos".

Código: [ Select ]
class
{
  public $first_name, $last_name;

  public function __construct($first, $last)
  {
   $this->first_name = $first;
   $this->last_name = $last;
  }
}
  1. class
  2. {
  3.   public $first_name, $last_name;
  4.   public function __construct($first, $last)
  5.   {
  6.    $this->first_name = $first;
  7.    $this->last_name = $last;
  8.   }
  9. }


Podría algo de configuración como ésta para obtener una "persona" s nombre completo.

Código: [ Select ]
$me = new person('joe', 'bert');
echo $me->first_name . ' ' . $me->last_name;
  1. $me = new person('joe', 'bert');
  2. echo $me->first_name . ' ' . $me->last_name;


O, usted puede configurar un método _toString, que PHP sepa para llamar automáticamente a fin de generar la cadena cuando se hace algo como

Código: [ Select ]
echo new person('joe', 'bert');


Por ejemplo

Código: [ Select ]
class
{
  public $first_name, $last_name;

  public function __construct($first, $last)
  {
   $this->first_name = $first;
   $this->last_name = $last;
  }

  public function __toString()
  {
   return $this->first_name . ' ' . $this->last_name;
  }
}

$me = new person('joe', 'bert');
define('GREETING', 'Hello, my name is %s');

printf(GREETING, $me);
  1. class
  2. {
  3.   public $first_name, $last_name;
  4.   public function __construct($first, $last)
  5.   {
  6.    $this->first_name = $first;
  7.    $this->last_name = $last;
  8.   }
  9.   public function __toString()
  10.   {
  11.    return $this->first_name . ' ' . $this->last_name;
  12.   }
  13. }
  14. $me = new person('joe', 'bert');
  15. define('GREETING', 'Hello, my name is %s');
  16. printf(GREETING, $me);


Ahora, siendo realistas, lo más probable es que nunca van a tener una clase que se ve en el búfer de salida antes de generar una cadena de producción. La única vez que se me ocurrió que incluso sería razonable (un poco) es que si había una clase que define una parte del idioma Inglés que se veía en la salida impresa anteriormente para ver cómo se debe imprimir algo.

Por ejemplo, si había una palabra clave que puede ser singular o plural dependiendo de lo que fue impreso antes de él, podría regresar lo que uno podría tener más sentido de la frase en la actualidad genera. Ahora, en 7 años nunca he visto nada como lo que hace, el ejemplo que he publicado es en realidad la primera vez he visto algo como este período. Por lo tanto, usted es probablemente seguro asumir sus casi nunca va a ser algo que usted necesita preocuparse, :)
Strong with this one, the sudo is.
  • WritingBadCode
  • Graduate
  • Graduate
  • Avatar de Usuario
  • Registrado: Abr 28, 2011
  • Mensajes: 214
  • Loc: Sweden
  • Status: Offline

Nota Mayo 2nd, 2011, 10:40 am

¿Sabes qué, creo que lo tengo ahora, después de leer un poco! 8) También agradezco el código bien escrito, me hizo cuestionar mi propio código y darme cuenta de que debe utilizar la palabra "público" en lugar de "var" cuando la variable declaringpublic (s).

Publicar Información

  • Total de mensajes en este tema: 9 mensajes
  • Usuarios navegando por este Foro: Bigwebmaster y 150 invitados
  • No puede abrir nuevos temas en este Foro
  • No puede responder a temas en este Foro
  • No puede editar sus mensajes en este Foro
  • No puede borrar sus mensajes en este Foro
  • No puede enviar adjuntos en este Foro
 
 

© 2011 Unmelted, LLC. Ozzu® es una marca registrada de Unmelted, LLC