我和一位同事在PHP版本:5.5.11中使用新关键字"yield"发现了一个非常奇怪的行为,我们想知道以下是否正常:
给出以下代码:
function yieldTest()
{
echo 'wtf1';
die('wtf2');
foreach (['foo', 'bar', 'baz'] as $each) {
yield $each;
}
}
var_dump(yieldTest());
Run Code Online (Sandbox Code Playgroud)
关于这一点的奇怪之处在于,如果函数中存在"yield",则:echo和die完全被跳过并且不被执行,并且仅对象"yield"构建是var_dumped.
当我们手动构建数组/对象并使用return时,它按预期工作.
我们发现,一旦函数中存在yield,它甚至会跳过抛出异常.
这种非常奇怪的行为是真的意图还是我们发现了一个错误?
我们不能真正相信这是需要的,因为它会大大降低功能的可靠性.
谷歌也没有找到任何与此问题有关的信息,为什么我认为我在这里问.
我有以下MySQL查询:
SELECT from_unixtime( `lastlogin` ) AS `last`
FROM `players` WHERE `lastlogin` <> 0 AND `last` < '2012-10-01 00:00:00';
Run Code Online (Sandbox Code Playgroud)
我得到以下结果:
last不能在WHERE语句中使用,因为这是一个虚拟列并且不存在."lastlogin"包含UNIX时间戳.
但是有没有一种在where语句中使用虚拟列的正确方法?
谢谢你的帮助.
我正在使用wxWidgets,我的地图编辑器中有一个搜索功能用于我的在线游戏.
我搜索不同条件的对象,并按名称将这些对象放在ComboBox列表中,并将对象添加为引用数据(void*),
我有一个事件onClickResult我想标记并跳转到有效的对象,但它在对象类型之间切换时崩溃我的应用程序,因为我似乎无法" reinterpret_cast"确定没有关系的类对象(没有子类,没有任何子类,两个独立的类)关系).
问题:有没有办法确定哪些数据类型位于void*(event.GetClientData()正在返回void*)并正确投射?
void SearchResultWindow::OnClickResult(wxCommandEvent& event) {
Item* item = reinterpret_cast<Item*>(event.GetClientData());
if (item) {
this->selectRelatedMapItem(item);
} else {
Creature* creature = reinterpret_cast<Creature*>(event.GetClientData());
if (creature) {
this->selectRelatedMapCreature(creature);
}
}
}
Run Code Online (Sandbox Code Playgroud)
谢谢!
Heya继承人(希望)很容易,
我该如何转换这个DATETIME值:
2014-01-16 12:00:00
Run Code Online (Sandbox Code Playgroud)
通过JavaScript或JQuery到unix时间戳?
在PHP中它很容易,但在JavaScript中似乎很难.我发现Date.parse()或new Date()为我提供了这一点,但这仅对包含该星期几的其他格式的时间戳有帮助.
有没有办法转换这个'数字'变体?
提前谢谢〜