Si tenes razon, he dado con el clavo, la solucion es
Código PHP:
<?php ((string)$_value == (string)$_REQUEST['cosa'])?>
forzando ambos a ser un string, un tanto confuso y dificil de detectar un error asi, me tome la tarea de verificar con certeza que pasaba y realice unos ejemplos, ahi van:
Código PHP:
<?php
$text = 'holaaaaaa'; //es string
$text1 = 'hola'; //es string
if($text == $text1) {
echo 'ejemp1: son iguales<br>'; //no son iguales
}
$num = 1234; //es int
$num1 = '1234,123'; //es string
if($num1 == $num) {
echo 'ejemp2: son iguales<br>'; //php dice que son iguales porque
//forza a ser int $num1 y solo toma 1234
}
$text2 = 'holaaaaaa';
$text3 = 'hola';
if($text2 === $text3) {
echo 'ejemp3: son iguales<br>'; //no son iguales
}
$num2 = 1234;
$num3 = '1234';
if($num2 === $num3) {
echo 'ejemp4: son iguales<br>'; //no son iguales, el operador === verifica primero el tipo,
//uno es int el otro string, aunque a primera vista a
//nosotros nos parecen iguales, no lo es
}
?>