Red de conocimiento informático - Conocimiento del nombre de dominio - Programación cotizada

Programación cotizada

Una referencia es un alias para una determinada variable (destino). La operación de la referencia es exactamente la misma que la operación directa de la variable.

Método de declaración de referencia: tipo identificador amp; nombre de referencia = nombre de variable de destino;

Ejemplo 1: int a; es una referencia a la variable a, es decir, un alias

Explicación:

(1) amp; aquí no es una operación de dirección, sino una función de identificación.

(2) El identificador de tipo se refiere al tipo de variable de destino.

(3) Al declarar una referencia, se debe inicializar al mismo tiempo.

(4) Una vez declarada la referencia, es equivalente a que el nombre de la variable de destino tenga dos nombres, a saber, el nombre original del objetivo y el nombre de referencia, y el nombre de referencia ya no se puede utilizar como un alias para otros nombres de variables.

ra=1; Equivalente a a=1;

(5) Declarar una referencia no define una nueva variable, solo significa que el nombre de la referencia es el nombre de la variable de destino An alias no es un tipo de datos en sí mismo, por lo que la referencia en sí no ocupa una unidad de almacenamiento y el sistema no asigna unidades de almacenamiento a la referencia. Por lo tanto: encontrar la dirección de la referencia es encontrar la dirección de la variable objetivo. amp;ra es igual a amp;a.

También se puede explicar de esta manera. La llamada referencia (Referencia) es darle un alias a un objeto. Cuando se usa este alias, se puede obtener el objeto. En otras palabras, el objeto nuevo y el objeto original comparten una dirección común. De esta manera, no importa qué objeto se modifique, el contenido de la misma dirección en realidad se modifica, por lo que el objeto original y el nuevo objeto (específicamente hablando, el objeto y su referencia) generalmente tienen el mismo valor. Referencias en constructores

Crear referencias en constructores puede generar resultados confusos. Esta sección es un tutorial para ayudar a evitar problemas.

lt;?php

class Foo {

function Foo($name){

// En la matriz global $globalref Crear una referencia

global $globalref;

$globalref[] = amp;$this;

//Establecer el nombre al valor pasado

p>

$this-gt; setName($name);

//Y generarlo

$this-gt; echoName();

}

función echoName() {

echo lt;, $this-gt;

}

función setName($nombre) {

$this-gt;nombre = $nombre;

}

}?gt;

Comprobemos si hay alguna diferencia entre $bar1 creado con el operador de copia = y $bar2 creado con el operador de referencia =amp;...

lt;?php

$bar1 = new Foo('establecido en el constructor');

$bar1-gt;echoName();

$globalref[0]-gt;echoName();

p>

/* Salida: establecido en constructorestablecido en constructorestablecido en constructor */

$bar2 =amp; new Foo('establecido en constructor');

$bar2- gt;echoName();

$globalref[1]-gt;echoName();

/* Salida: establecido en el constructorconjunto en el constructorconjunto en el constructor * / gt;

Obviamente no hay diferencia, pero en realidad hay una diferencia muy importante: $bar1 y $globalref[0] no están referenciados, no son la misma variable. Esto se debe a que "nuevo" no devuelve una referencia por defecto, sino una copia.

Nota: No hay ninguna penalización en el rendimiento al devolver una copia en lugar de una referencia (porque PHP 4 y superiores usan el recuento de referencias). En cambio, suele ser mejor trabajar con copias en lugar de referencias, porque configurar una referencia lleva algo de tiempo y configurar una copia en realidad no lleva tiempo (a menos que no sean grandes matrices u objetos y uno de ellos cambie tras otro, entonces Sería más inteligente utilizar referencias para modificarlas simultáneamente).

Para probar lo escrito anteriormente, observe el siguiente código.

lt;?php

// Ahora cambia el nombre, ¿qué resultados esperas?

// Es de esperar que tanto $bar1 como $globalref[0] cambien sus nombres...

$bar1-gt; setName('set from outside') ;

// Pero como mencionamos antes, este no es el caso.

$bar1-gt; echoName();

$globalref[0]-gt; echoName()

/* La salida es: establecida desde outsideset en el constructor */

// Ahora vea si hay alguna diferencia entre $bar2 y $globalref[1]

$bar2-gt; ;

p>

// Afortunadamente no sólo son iguales, son básicamente la misma variable.

// Por lo tanto $bar2-gt;name y $globalref[1]-gt;name también son la misma variable.

$bar2-gt; echoName();

$globalref[1]-gt; echoName()

/* La salida es: establecida desde outsideset from outside */ gt;

Finalmente da otro ejemplo e intenta entenderlo.

lt;?php

clase A {

función A($i) {

$this-gt; i;

// Intenta entender por qué no se necesita ninguna referencia aquí

$this-gt; b = new B($this);

}< / p>

función createRef() {

$this-gt; c = new B($this);

}

función echoValue( ) {

echo lt; br /gt;, clase, get_class($this), ': ', $this-gt;

}

}

clase B {

función B(amp;$a) {

$this-gt;a = amp;$a;

}

función echoValue() {

echo br /gt;, clase, get_class($this), ': ', $this-gt; - gt;value;

}

}

// Intente comprender por qué se usaría una copia simple aquí a continuación

* // Se producen resultados inesperados en la línea marcada

$a =amp; new A(10);

$a-gt();

$a-gt;echoValue();

$a-gt;b-gt;echoValue();

$a-gt;c-gt;echoValue ();

$a-gt;valor = 11;

$a-gt;echoValue();

$a-gt;b-gt ; ;

// *$a-gt; c-gt; echoValue(); El ejemplo anterior generará: clase A: 10clase B: 10clase A: 11clase B: 11clase B: 11 Referencia a la Guía estándar para citas académicas

La "Guía para la guía estándar para citas académicas" resuelve las cuatro preguntas básicas (4W) en citas académicas, a saber, por qué citar, qué citar y cuándo citar. y cómo citar, ayudando así eficazmente a los lectores a dominar los estándares de citación y prevenir el plagio. El libro proporciona una introducción completa y detallada a diferentes formatos y métodos de citación para diferentes tipos de documentos. Incluyendo varios formatos de citas aceptados internacionalmente (formato Harvard, formato APA, formato MLA y formato de numeración), así como decenas de tipos como monografías, artículos de revistas, CD electrónicos, discursos, microfilmes, blogs, Weibo, correos electrónicos, etc. de literatura. . La "Colección de problemas comunes de citas" explica en detalle los diversos problemas de citas que suele encontrar el personal académico. En resumen, los lectores no solo pueden aprender sistemáticamente los estándares de citación a través de este libro, sino que también pueden consultarlo en cualquier momento durante el proceso de escritura académica, lo cual es muy conveniente y práctico.

Capítulo 1: "Increíble" Cita Capítulo 2: Por qué citar Notas Capítulo 3 Qué contenido se debe citar y cuándo citarlo Capítulo 4 Qué es plagio Capítulo 5 Formato de cita Capítulo 6 Año de publicación del autor (Harvard) Formato de cita Capítulo 7 Colección de temas comunes de citación Capítulo 8 Cómo expresar sus propias opiniones en un artículo Capítulo 9 Ejemplos de varios tipos de citas de documentos Apéndice 1 “¿Cuándo se requiere citar?” Respuestas de la prueba Apéndice 2 “¿Qué es el plagio” Respuestas de la prueba Apéndice 3 “Ejercicio: ¿Es esto un plagio?” Lectura de referencias bibliográficas