我意识到第二个避免了函数调用的开销(更新,实际上是一种语言结构),但知道一个是否比另一个更好会很有趣.我一直在使用unset()我的大部分编码,但我最近查看了一些在网上发现的可敬的类,$var = null而不是使用它.
有没有首选,是什么原因?
在JavaScript中,您可以定义立即执行的匿名函数:
(function () { /* do something */ })()
Run Code Online (Sandbox Code Playgroud)
你能在PHP中做那样的事情吗?
假设我有一个关联数组Foo,键值和值xyz.
console.log(Foo['bar']);
>> xyz
delete Foo['bar'];
console.log Foo['bar'];
>> undefined
Foo['bar'] = 'xyz';
console.log(Foo['bar']);
>> xyz
Foo['bar'] = undefined;
console.log (Foo['bar']);
>> undefined
Run Code Online (Sandbox Code Playgroud)
我的问题是,两者中哪一个更有效率,它们有何不同?有什么情况我应该使用一个而不是另一个?
谢谢!
结果:
感谢大家帮忙并向我展示jsperf.将其设置为undefined似乎(相对)明显快于删除,尽管下面指出的所有注意事项也非常有趣(事实上,我可能会使用删除很多,以避免将来的左边错误).
这个问题是对使用PHP释放内存有什么好处的后续问题:unset()或$ var = null
长话短说,我自己的基准似乎与该问题中给出的答案相矛盾.我的问题是......为什么?答案是错的还是有些东西我只是不理解?
<?php
$start = microtime(true);
for ($i = 0; $i < 10000000; $i++) {
$a = 'a';
$a = NULL;
}
$elapsed = microtime(true) - $start;
echo "took $elapsed seconds\r\n";
$start = microtime(true);
for ($i = 0; $i < 10000000; $i++) {
$a = 'a';
unset($a);
}
$elapsed = microtime(true) - $start;
echo "took $elapsed seconds\r\n";
?>
Run Code Online (Sandbox Code Playgroud)
看来,"= null"似乎更快.
PHP 5.4结果:
PHP 5.3结果:
PHP …
我想知道是否有任何方法可以销毁 Codeigniter 库实例。
我想做的是这样的:
$this->load->library('my_library');
/**
Code goes here
**/
$this->my_library->destoy_instance();
Run Code Online (Sandbox Code Playgroud)
我需要这样做的原因是因为我需要在执行大型脚本时释放 RAM 内存。
任何帮助将不胜感激。