Error de operador lógico PHP eval ()

Por que

if (isset($_SESSION['location']) AND !empty($_SESSION['location']))

trabajar mientras

if (isset($_SESSION['location']) && !empty($_SESSION['location']))

¿no?

Estoy usando eval () para procesar PHP en una página de WordPress. No tiene sentido para mí por qué PHP se ahoga en && y no AND . Los documentos no dicen nada específicamente y nadie más parece tener una respuesta clara.

Gracias por tu contribución.

EDITAR

No es que realmente importe, pero yo uso eval () en una plantilla de WP:

  $sContent = get_the_content(); $sContent = apply_filters('the_content', $sContent); $sContent = str_replace(']]>', ']]>', $sContent); eval(' ?>'. $sContent .'<?php '); 

WordPress convierte el && a && .

Me encontré con un problema como este antes, así que es bueno saberlo. Hago la mayor parte de la lógica en esa plantilla PHP WP, así que esto no es gran cosa, pero siempre que entiendo lo que está pasando.

Gracias a GigaWatt por señalar esto y recordarme recuerdos perdidos hace mucho tiempo.