手册说
一旦删除了对特定对象的所有引用,或者在关闭序列中显式销毁对象或以任何顺序,就会调用析构函数方法.
PHP GC不够用吗?有人可以举例说__destruct方法是必要的吗?
下面是对一个大数组的php foreach循环的测试,我认为如果$v不改变,真正的副本不会因为写入时的副本而发生,但为什么它通过引用传递时速度快?
代码1:
function test1($a){
$c = 0;
foreach($a as $v){ if($v=='xxxxx') ++$c; }
}
function test2(&$a){
$c = 0;
foreach($a as $v){ if($v=='xxxxx') ++$c; }
}
$x = array_fill(0, 100000, 'xxxxx');
$begin = microtime(true);
test1($x);
$end1 = microtime(true);
test2($x);
$end2 = microtime(true);
echo $end1 - $begin . "\n"; //0.03320002555847
echo $end2 - $end1; //0.02147388458252
Run Code Online (Sandbox Code Playgroud)
但这一次,使用pass by reference很慢.
代码2:
function test1($a){
$cnt = count($a); $c = 0;
for($i=0; $i<$cnt; ++$i)
if($a[$i]=='xxxxx') ++$c;
}
function …Run Code Online (Sandbox Code Playgroud) 我正试图用"onclick"事件调用一个函数,如下所示:
<td id="A1" onclick="move()" class="white"></td>
<td id="A2" onclick="move()" class="painted bp"></td>
<td id="A3" onclick="move()" class="white"></td>
Run Code Online (Sandbox Code Playgroud)
在函数本身,我指的是"这个":
function move(e){
var myId = this.id;
alert("myId");
}
Run Code Online (Sandbox Code Playgroud)
当我运行整个事情时,警报说"未定义".当我尝试时,alert(this)我得到[对象窗口].我正在使用IE9,顺便说一句.谢谢
我在插入过程中遇到了问题.这是问题所在:
INSERT INTO SALES_ORDER_A4 (ORDERNO , CLIENTNO , ORDERDATE , DELYADDR , SALESMANNO , DELYTYPE , BILLYN , DELYDATE, ORDERSTATUS)
SELECT 'O19008' ,
'C00005' ,
to_date('24-MAY-02','DD-MON-YY'),
'Delhi' ,
'S00004' ,
'F' ,
'N' ,
to_date('26-MAY-02','DD-MON-YY') ,
'In Process'
FROM DUAL
UNION ALL
SELECT 'O19001' ,
'C00001' ,
to_date('12-JUN-02','DD-MON-YY') ,
'Delhi' ,
'S00001' ,
'F' ,
'N' ,
to_date('20-JUN-02','DD-MON-YY') ,
'In Process'
FROM DUAL
UNION ALL
SELECT 'O19002' ,
'C00002' ,
to_date('25-JUN-02','DD-MON-YY'),
'Delhi' ,
'S00002' ,
'P' ,
'N' ,
to_date('27-JUL-02','DD-MON-YY') …Run Code Online (Sandbox Code Playgroud) 我有一个PHP脚本,可以$_POST决定返回哪个数组.例如:
$n = $_POST['n']; // 1, 2 or 3
$a1 = array ('something', 'something else', 'another thing');
$a2 = array ('something 2', 'something else 2', 'another thing 2');
$a3 = array ('something 3', 'something else 3', 'another thing 3');
Run Code Online (Sandbox Code Playgroud)
现在我想得到与该$n值对应的数组,比方说"2".
我怎么能说echo $a . $n得到$a2
谢谢.
我有一个表保存用户评论,我想检索每个用户发表的最后一条评论.
下面的查询应该让我知道我想要做什么
select comment, comment_id, userId FROM comments_table
WHERE comment_id in (
SELECT MAX(comment_id)
FROM comments_table where userId in (2001, 2002, 2010)
GROUP BY userId
)
Run Code Online (Sandbox Code Playgroud)
以上查询有效,但需要太长时间,特别是如果有很多userIds.
我需要一个更快的查询语句来完成同样的事情.
我有问题仍然困扰我js oop - 我确定我做得不好,但我不能得到如何正确做到这一点.
例如,我有这个代码
Auth.prototype.auth = function () {
var request = new XMLHttpRequest();
request.open('GET', this.getAuthServerURL() + '/token', true);
request.send();
request.onloadend = function () {
var response = JSON.parse(request.responseText);
console.log(response);
if(response.result == 'found') {
var token = response.token;
this.setToken(token);
this.isSigned = true;
} else {
console.log('Not logged yet.');
}
}
}
Run Code Online (Sandbox Code Playgroud)
问题是我无法从"request.onloadend"函数的上下文访问函数setToken - 这可能是因为我丢失了对"this"的引用.
这是什么问题的解决方案?我可以以某种方式将"this"var传递给此函数的上下文吗?
谢谢!
我有下表:
n1|n2|n3|n4|n5
1| 5| 4| 7|26
26|80|75| 1|10
5| 3| 2| 1|4
45|26| 1| 3|66
Run Code Online (Sandbox Code Playgroud)
我正在尝试获取出现两个或更多指定值的行数.例如,在上表中,26和1出现在3行中.
有没有一种快速的方法在mySQL中执行此操作,还是应该在PHP中构建一些函数?
非常感谢您的帮助
我需要使用regexp处理字符串,如果是数字则更改x-> y.
字符串:2x2x2 2x 2x2x 2x2x2x2x2
正则表达式:s/([0-9])x([0-9])/$1y$2/g
my $string = "2x2x2 2x 2x2x 2x2x2x2x2";
$string =~ s/([0-9])x([0-9])/$1y$2/g;
print "$string\n";
Run Code Online (Sandbox Code Playgroud)
我预计: 2y2y2 xx 2x 2y2x 2y2y2y2y2
但结果是:( 2y2x2 2x 2y2x 2y2x2y2x2并非所有2x2都改变了)
我该怎么办?
我想知道是否或如何将函数映射到散列值.
例如:---- Start Class ------------
def foo(var)
return var + 2
end
hash_var = { func => foo() }
Run Code Online (Sandbox Code Playgroud)
----结束班--------------
所以我以后可以打电话
Class::hash_var["func"][10]
Run Code Online (Sandbox Code Playgroud)
要么
Class::hash_var["func"](10)
Run Code Online (Sandbox Code Playgroud)
这将返回12?