Tag: 生存期

Rust为什么需要明确的生命周期?

我正在阅读Rust书的有生之年的一章 ,并且我在这个例子中看到了一个命名/明确的生命周期: struct Foo<'a> { x: &'a i32, } fn main() { let x; // -+ x goes into scope // | { // | let y = &5; // —+ y goes into scope let f = Foo { x: y }; // —+ f goes into scope x = &f.x; // | | […]

如何设置会话的生命周期

如何在PHP中设置会话生存期? 只要请求存在,我就想永久性地设置它。 请求是AJAX。 我处理AJAX请求的PHP代码是: // AJAX.php <?php session_start(); $_SESSION['counter'] = $_SESSION['counter'] + 1; header('Content-type: application/json'); echo json_encode(array('tick' => $_SESSION['counter'])); ?> 和JavaScript: $(document).ready(function() { function check() { getJSON('ajax.php'); } function getJSON(url) { return $.getJSON( url, function(data) { $("#ticker").html(data.tick); } ); } setInterval(function() { check(); }, 10000); // Tick every 10 seconds }); 会话总是在300秒后重置。

C中string字面值的“生命期”

下面的函数不能返回指针吗? char *foo( int rc ) { switch (rc) { case 1: return("one"); case 2: return("two"); default: return("whatever"); } } 所以C / C ++中的局部variables的生命周期实际上只在函数内部,对吗? 这意味着,在char* foo(int)终止后,它返回的指针不再意味着什么? 我对本地变种的生存期有点困惑。 谁能给我一个很好的说明?

临时工的生命周期

下面的代码工作正常,但为什么这是正确的代码? 为什么foo()返回的临时的“c_str()”指针有效? 我想,当进入bar()时,这个临时文件已经被破坏 – 但是它似乎不是这样的。 所以,现在我假设由foo()返回的临时文件在调用bar()之后会被销毁 – 这是正确的吗? 为什么? std::string foo() { std::string out = something…; return out; } void bar( const char* ccp ) { // do something with the string.. } bar( foo().c_str() );