我无法从函数中获取值。 当我打算打印价值时,它会显示旧价值" 8"。似乎函数validateInput()不起作用。
$current_val = "8";
function validateInput() {
$db = JFactory::getDbo();
//$search = $this->item->producer;
$query = " SELECT * FROM aua8l_djc2_after_reg_page ";
$db->setQuery($query);
$result = $db->query();
if ($result->num_rows > 0) {
while($row = $result->fetch_assoc()) {
$curr = $row['type'];
global $current_val;
switch ($curr) {
case '1':
$current_val = "youtube";
return $current_val;
//echo $current_val;
//return $GLOBALS['current_val'];
break;
case '2':
$current_val = "rdparty";
//return $GLOBALS['current_val'];
break;
case '3':
$current_val = "thankyou";
//return $GLOBALS['current_val'];
break;
}
}
}
}
echo $current_val;
答案 0 :(得分:2)
另一种方法是:
$current_val = "8";
function validateInput() {
$db = JFactory::getDbo();
$query = " SELECT * FROM aua8l_djc2_after_reg_page ";
$db->setQuery($query);
$result = $db->query();
if ($result->num_rows > 0) {
while($row = $result->fetch_assoc()) {
$curr = $row['type'];
global $current_val;
switch ($curr) {
case '1':
$current_val = "youtube";
break;
case '2':
$current_val = "rdparty";
break;
case '3':
$current_val = "thankyou";
break;
}
}
return $current_val;
}
}
现在你可以做任何一次
echo validateInput();
或
$current_val = validateInput();
和$current_val
将是您想要的。
答案 1 :(得分:1)
$current_val = "8";
$current_val = validateInput($current_val);
function validateInput($current_val) {
$db = JFactory::getDbo();
//$search = $this->item->producer;
$query = " SELECT * FROM aua8l_djc2_after_reg_page ";
$db->setQuery($query);
$result = $db->query();
if ($result->num_rows > 0) {
while($row = $result->fetch_assoc()) {
$curr = $row['type'];
global $current_val;
switch ($curr) {
case '1':
$current_val = "youtube";
return $current_val;
//echo $current_val;
//return $GLOBALS['current_val'];
break;
case '2':
$current_val = "rdparty";
//return $GLOBALS['current_val'];
break;
case '3':
$current_val = "thankyou";
//return $GLOBALS['current_val'];
break;
}
}
}
}
echo $current_val;