我花了很多时间在树视图中手动扩展深层嵌套文件夹,如Project Explorer和File Search结果树.是否有键盘快捷键或菜单命令来展开所有文件夹?
我正在使用MAMP的 PHP 5.3.6 .
我有一个使用情况下这将是最好使用PHP的Iterator接口中的方法,next(),current()和valid()迭代通过集合.一个foreach循环将不是在我的特殊情况为我工作.简化的while循环可能看起来像
<?php
while ($iter->valid()) {
// do something with $iter->current()
$iter->next();
}
Run Code Online (Sandbox Code Playgroud)
当$ iter实现PHP的Iterator接口时,上面的代码是否总能工作?PHP的foreach关键字如何处理迭代器?
我问的原因是我写的代码可能会给出一个ArrayIterator或一个MongoCursor.两者都实现了PHP的Iterator接口,但它们的行为方式不同.我想知道PHP或PHP的Mongo扩展中是否存在错误.
ArrayIterator::valid()在任何调用之前返回true next()- 在ArrayIterator创建之后立即返回true .
MongoCursor::valid()只在第一次调用后返回true next().因此,上面的while循环永远不会执行.
有可能是冗长的,下面的代码演示了这些断言:
<?php
// Set up array iterator
$arr = array("first");
$iter = new \ArrayIterator($arr);
// Test array iterator
echo(($iter->valid() ? "true" …Run Code Online (Sandbox Code Playgroud) stl_load_errors的Amazon Redshift 文档指出“该表对所有用户可见。” 但是,以超级用户(936 行)和非超级用户(0 行)身份查询时,我得到了不同的结果。为什么以非超级用户的身份运行查询返回 0 行?
这是我运行的查询。
超级用户:
$ psql -U masteruser -h XX.XX.XX.XX -p 5439 bi -w -c "select count(*) from stl_load_errors"
count
-------
936
(1 row)
Run Code Online (Sandbox Code Playgroud)
非超级用户:
$ psql -U emonsen -h XX.XX.XX.XX -p 5439 bi -w -c "select count(*) from stl_load_errors"
count
-------
0
(1 row)
Run Code Online (Sandbox Code Playgroud)
此外,我可以使用HAS_TABLE_PRIVILEGE来表明 Redshift 认为“emonsen”对 stl_load_errors 具有正确的权限:
$ psql -U masteruser -h XX.XX.XX.XX -p 5439 bi -w -c "select has_table_privilege('emonsen', 'stl_load_errors', 'select')"
has_table_privilege
---------------------
t
(1 …Run Code Online (Sandbox Code Playgroud)