Si quieres que una funciion retorne varios valores, debes convertirla en una funcion generadora.
Las funciones generadoras no usan return sino yield, es decir, no retornan un unico valor, sino que lanzan retornos a medida que se los solicita, por ejemplo:
Código PHP:
Ver original<?php
function comprobarCookie($cookie)
{
$sql_comprobar = "SELECT * FROM users WHERE cookieUser = :cookie and validezCookie >'".date("Y-m-d h:i:s")."'"; $result = $dbcon->prepare($sql_comprobar);
$result->bindParam(':cookie' , $cookie, PDO::PARAM_STR);
$result->execute();
if(!$result || $result->rowCount()<1)
return; // Matar la funcion.
else
{
$row = $result->fetch();
yield "m_user" => $row["nombreUser"]; // Retornar varias variables.
yield "m_user_id" => $row["idUser"]; // Retornar varias variables.
yield "m_user_nick" => $row["nickUser"]; // Retornar varias variables.
yield "m_user_rol" => $row["rolUser"]; // Retornar varias variables.
}
}
$some_cookie = "some_use";
foreach(comprobarCookie($some_cookie) as $field => $value)
echo("$field => $value <br>");
Otra forma mas clasica de retornar mas de un valor es mediante un array y la funcion list:
Código PHP:
Ver original<?php
function comprobarCookie($cookie)
{
$sql_comprobar = "SELECT * FROM users WHERE cookieUser = :cookie and validezCookie >'".date("Y-m-d h:i:s")."'"; $result = $dbcon->prepare($sql_comprobar);
$result->bindParam(':cookie' , $cookie, PDO::PARAM_STR);
$result->execute();
if(!$result || $result->rowCount()<1)
else
}
$some_cookie = "some_use";
list($m_user, $m_user_id, $m_user_nick, $m_user_rol) = comprobarCookie
($some_cookie);
Y como para cerrar, al igual que en la mayoria de los lenguajes, return mata la ejecucion de una funcion, puedes poner todos los que quieras, pero solo se ejecutara el primero que se encuentre.