我试图比较两个通常是字符串的变量.这些变量是从一个数据库,$var1一个数据库和$var2另一个数据库生成的.当我在循环中比较它时,我使用ne运算符.但是有时候我这些变量是null或者undef.比较如下:
foreach my $var1 (@$varlist)
{
if ($var1 ne $var2)
{
print "vars are not equal";
}
}
Run Code Online (Sandbox Code Playgroud)
问题是,如果$var1还是$var2有undef那么我得到一个错误.但是,我需要能够比较那些值为undef b/c我将不得不写它们.我考虑将变量转换为字符串'NULL'然后返回,但这似乎效率低下.
有任何解决这个问题的方法吗?谢谢!
我试图通过给出表中的列和表数据本身来创建"视图"或将构建HTML表的函数.这将是Yii中renderPartial方法调用的页面.我想像这样做(将演示使用伪代码):
void view(array $cols, array $tabledata)
{
//$tabledata will be an array of CActiveRecord objects. $cols is an array of strings from getColumnNames().
<table><thead><tr>
foreach($cols as $col)
{
<th>$col</th>
}
</tr></thead><tbody>
foreach($tabledata as $data)
{
<tr>
foreach($cols as $col)
{
<td>$data->$col</td>
}
</tr>
}
</tbody></table>
}
Run Code Online (Sandbox Code Playgroud)
然而,我遇到的问题是我无法获得关系的列.我找到了http://www.yiiframework.com/doc/api/1.1/CDbTableSchema,但似乎只给出了特定表的列名.我需要一种方法来获取关系将用于生成HTML表时使用的所有列.或者,如果有人有更好的方法,请告诉我.谢谢!
编辑:作为一个注释,我没有使用CGridView的原因,包括我下面列出的那个,是我不想知道列是什么或数据.我希望能够使用代码构建表.