Duda con un par de elementos de la sintaxis.

Iniciado por ZHOSS-9, 22 Diciembre 2011, 00:14 AM

0 Miembros y 1 Visitante están viendo este tema.

ZHOSS-9

Buenas, estoy aprendiendo PHP, y ojeando códigos he visto cosas que no entiendo muy bien para que sirven. No pido una explicación detallada tampoco si no tenéis demasiadas ganas, pero si  me podéis decir el nombre para poder buscar info en la web de PHP me vendría muy bien.

La primera es esta

Código (php) [Seleccionar]
if (strpos($url, '?') !== false)
{
$url .= '&' . $yrya->session->vars['sessionurl'];
}


¿Qué hacen los . y los ->?
Los remarco para que veáis a los que me refiero: $url .= '&amp;' //> este punto //>. $yrya->session->vars['sessionurl']; <// y esas -> en negrita <//

Código (php) [Seleccionar]
($hook = yryaHook::fetch_hook('login_strikes')) ? eval($hook) : false;

No entiendo esta sintaxis, la verdad.. ¿Por qué están separados con :: y con :?
¿Qué hace el interrogante '?' por ahi en medio? ¿Y de que sirve encerrar entre parentesis desde $hook hasta strikes')?


Muchas gracias por adelantado. La verdad es que saber esto me permitirá avanzar muchísimo.

madpitbull_99

Código (php) [Seleccionar]
$yrya->session->vars['sessionurl'];

El signo -> es el operador this, sirve para la programación orientada  a objetos en PHP. Se usa para acceder a métodos y propiedades de un objeto.

El operador . (punto) sirve para concatenar cadenas. Ejemplo:

Código (php) [Seleccionar]

$nombre = "mp_99";
$var = "Hola " . $nombre . " !!!";



Código (php) [Seleccionar]
($hook = yryaHook::fetch_hook('login_strikes')) ? eval($hook) : false;

El operador dos puntos (::) sirve para acceder a métodos estáticos de una clase.

El signo interrogación forma parte de lo que se llaman "operadores ternarios". Es cómo una especie de if-else pero reducidos.


Pregunta si algo no te ha quedado claro :)



«Si quieres la paz prepárate para la guerra» Flavius Vegetius


[Taller]Instalación/Configuración y Teoría de Servicios en Red

ZHOSS-9

Ya lo voy pillando. Perfecto, muchas gracias madpitbull!
Voy a empezar a mirarme entonces la programación orientada a objetos, las clases (que esto ya estaba a punto de mirármelo) y los operadores ternarios, seguro que encuentro bastantes cosas.

De todas formas con lo que me has explicado aunque haya sido breve me has aclarado bastantes cosas, o por lo menos me imagino por lógica el funcionamiento.

Un saludo ^^