Estoy traduciendo una Web de asp clásico a PHP y me encuentro con este problema al llamar funciones.
Tengo esta función:
Código PHP:
Ver original
<?php //Devuelve el valor del campo solicitado. Falso si no encuentra ningún registro. // Function ComprobarLogico($nombre_tabla, $nombre_campo, $clausula_where) { Global $conn; //Generamos la instrucción sql $sql = "Select " . $nombre_campo . " From " . $nombre_tabla; //Concatenamos el Where si procede If ($clausula_where <> ""): $sql .= " Where " . $clausula_where; EndIf; //Si devuelve datos lo devolvemos If ($rs = $conn->query($sql)) { $fila = $rs->fetch_array(MYSQLI_NUM); $respuesta = $fila[0]; } //Si no devolvermos false Else { $respuesta = false; } $rs->free(); //Devolvemos respuesta. Return $respuesta; } ?>
Devuelve el valor de un campo de la DB
y tengo esta otra:
Código PHP:
Ver original
<?php //Devuelve un icono que accede a una url del CMS Function AccesoCMS($url) { $acceso = ComprobarLogico("Sistema", "AccesoCMS", "IdReg=1"); If (($_SESSION["grupo"] == 1 Or $_SESSION["grupo"] == 2) And $acceso = 1) { $respuesta = "<div class='accesocms'><a href='" . $url . "'><i title='Editar' class='fa fa-cog fa-2x fa-spin' ></i></a></div>"; } //Devolvemos respuesta. Return $respuesta; } ?>
Así como la veis funciona, pero porqué no funciona así:
Código PHP:
Ver original
<?php //Devuelve un icono que accede a una url del CMS Function AccesoCMS($url) { If (($_SESSION["grupo"] == 1 Or $_SESSION["grupo"] == 2) And ComprobarLogico("Sistema", "AccesoCMS", "IdReg=1") = 1) { $respuesta = "<div class='accesocms'><a href='" . $url . "'><i title='Editar' class='fa fa-cog fa-2x fa-spin' ></i></a></div>"; } //Devolvemos respuesta. Return $respuesta; } ?>
¿por qué no puedo comparar directamente con la función?
Este es el error que tira:
Fatal error: Can't use function return value in write context