我想知道有没有办法获取变量的值,这是在函数内部的循环中定义的?
在循环/ if-then-else等中声明的变量是否具有有限的范围(仅在这些块内)?
这是一个函数的例子:
<?php
function getComments($tabName) {
$sql = "select
a.owner,
a.table_name,
a.column_name,
a.data_type,
a.data_length,
a.data_precision,
b.comments
from
all_tab_columns a,
user_col_comments b
where
a.TABLE_NAME = b.table_name
and a.COLUMN_NAME = b.column_name
and a.owner = 'CORE'
and a.table_name ='" . $tabName . "'
order by
a.column_id";
$stid = oci_parse(getConnect(), $sql);
// runs the query above
oci_execute($stid);
while ($row = oci_fetch_array($stid, OCI_ASSOC + OCI_RETURN_NULLS)) {
foreach ($row as $column => $entry) {
// Column name
if ($column == 'COLUMN_NAME') {
$output = "this is a column";
}
}
}
return $output;
}
在这里我得到了“Undefined variable:output”错误。
如果我将echo改为$output
变量,我会得到结果。
是因为$output
范围吗?如何在退货时获得$output
值?
答案 0 :(得分:1)
尝试满足这个条件
if ($column == 'COLUMN_NAME') {
$output = "this is a column";
}
并且您也可以尝试在条件
之后立即返回 if ($column == 'COLUMN_NAME') {
return "this is a column";
}