Símbolos PHP: guía por la jungla de la sintaxis
\n\n¿Alguna vez has mirado código PHP de otros y te has sentido como si estuvieras leyendo jeroglíficos antiguos? Flechas, dos puntos, signos de interrogación: todo parpadea ante tus ojos, y tu cerebro se niega a entender lo que está pasando. ¿Te suena familiar? No te preocupes, no estás solo. El tema «qué significa este símbolo en PHP» es uno de los más populares en Stack Overflow, y hoy lo desglosaremos todo.
\n\nEn este artículo hemos creado una guía completa de símbolos PHP, desde operadores básicos hasta construcciones ingeniosas de la sintaxis moderna. Aprenderás a leer cualquier código PHP con facilidad. ¡Allá vamos!
\n\n\n\n
1. Flecha -> (acceso a objetos)
\n\nEl visitante más frecuente en cualquier proyecto PHP. La flecha se utiliza para acceder a propiedades y métodos de un objeto. Si ves $obj->prop, significa que estamos accediendo a la propiedad prop del objeto $obj.
<?php\nclass User {\n public $name = 'Alexey';\n public function greet() {\n return "¡Hola, {$this->name}!";\n }\n}\n\n$user = new User();\necho $user->name; // Alexey\necho $user->greet(); // ¡Hola, Alexey!\n?>\n\nObserva: dentro de la clase usamos $this->name — es la misma flecha, pero apuntando al objeto actual.
2. Dos puntos dobles :: (Operador de Resolución de Ámbito)
\n\nDos puntos dobles es el operador de resolución de ámbito. Se utiliza para acceder a propiedades estáticas, métodos y constantes de una clase. Recuerda: si ves ::, significa que estás accediendo a algo que pertenece a la clase, no a su instancia.
<?php\nclass Config {\n const SITE_NAME = 'PythonLib';\n public static $version = '1.0';\n public static function info() {\n return self::SITE_NAME . ' v' . self::$version;\n }\n}\n\necho Config::SITE_NAME; // PythonLib\necho Config::$version; // 1.0\necho Config::info(); // PythonLib v1.0\n?>\n\nAquí self:: es una referencia a la clase actual desde su interior. Y desde fuera escribimos NombreClase::.
3. Operador de fusión null (??)
\n\nUno de los operadores más útiles, introducido en PHP 7. Permite manejar elegantemente casos donde una variable puede no estar definida o ser null. La expresión $a ?? $b devuelve $a si existe y no es null, de lo contrario devuelve $b.
<?php\n$username = $_GET['user'] ?? 'Invitado';\n// En lugar de la construcción engorrosa:\n// $username = isset($_GET['user']) ? $_GET['user'] : 'Invitado';\n\n// Se puede encadenar:\n$name = $firstName ?? $nickname ?? 'Anónimo';\n?>\n\n4. Operador nave espacial <=> (Spaceship)
\n\nOperador de comparación de tres vías. Devuelve -1, 0 o 1 dependiendo de si el valor izquierdo es menor, igual o mayor que el derecho. Ideal para ordenar.
\n\n<?php\necho 1 <=> 2; // -1 (1 es menor que 2)\necho 2 <=> 2; // 0 (son iguales)\necho 3 <=> 2; // 1 (3 es mayor que 2)\n\n// Ejemplo con ordenación de un array de objetos\nusort($users, function($a, $b) {\n return $a->age <=> $b->age;\n});\n?>\n\n5. Puntos suspensivos ... (Operador Spread / Variádico)
\n\nTres puntos pueden significar dos cosas. La primera es desempaquetado de arrays (spread) en PHP 7.4+. La segunda es la indicación de un número variable de argumentos en una función (variádico).
\n\n<?php\n// 1. Spread para arrays\n$parts = ['manzana', 'pera'];\n$fruits = ['plátano', ...$parts, 'naranja'];\n// ['plátano', 'manzana', 'pera', 'naranja']\n\n// 2. Argumentos variádicos\nfunction sum(...$numbers) {\n return array_sum($numbers);\n}\necho sum(1, 2, 3, 4); // 10\n?>\n\n6. Signo de interrogación con dos puntos ?: (Ternario)
\n\nEl operador ternario es una forma abreviada de if-else. $a ? $b : $c devuelve $b si