Hola!!
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