有文件证明PHP5 OOP 对象默认通过引用传递.如果这是默认情况下,在我看来有一个没有默认的方式来复制没有参考,如何?
function refObj($object){
foreach($object as &$o){
$o = 'this will change to ' . $o;
}
return $object;
}
$obj = new StdClass;
$obj->x = 'x';
$obj->y = 'y';
$x = $obj;
print_r($x)
// object(stdClass)#1 (3) {
// ["x"]=> string(1) "x"
// ["y"]=> string(1) "y"
// }
// $obj = refObj($obj); // no need to do this because
refObj($obj); // $obj is passed by reference
print_r($x)
// object(stdClass)#1 (3) {
// ["x"]=> string(1) "this will …Run Code Online (Sandbox Code Playgroud) 我想用里面的javascript来隐藏这个警告div.
我正在使用javascript吗?当我点击关闭图标时,我想隐藏/关闭div(images/close_icon.gif)
<div>
<strong>Warning:</strong>
These are new products
<a href='#' class='close_notification' title='Click to Close'>
<img src="images/close_icon.gif" width="6" height="6" alt="Close" onClick="this.close" />
</a
</div>
Run Code Online (Sandbox Code Playgroud) 当我通过浏览器执行我的电子邮件脚本时,会返回超时致命错误(除非我大幅增加执行时间,否则它将运行正常,而不是我正在寻找的解决方案).电子邮件是发送的,但它需要永远(平均5分钟)到达(在我的收件箱)!
(考虑到通过命令行它完美地运行我认为php.ini上的SMTP确实配置得很好.)
所以这是浏览器请求执行的代码:
<?php
mail('amatos@example.com', 'test subject', 'test body', 'From: Andre Matos <amatos@example.com>');
?>
Run Code Online (Sandbox Code Playgroud)
当我通过命令行运行同样的(它是否真的一样?我开始怀疑自己)代码时:
php -r "mail('amatos@example.com', 'test subject', 'test body', 'From: Andre Matos <amatos@example.com>');"
Run Code Online (Sandbox Code Playgroud)
它完美地运作!脚本运行,它停止,电子邮件立即到达(2/3秒).
那么,什么可以导致这种差异以及如何解决它?有任何想法吗?
提前致谢.
[编辑]一些额外的信息:
- 机器是Windows
- 服务器是localhost
- php.ini对于浏览器和cli实例是相同的
[edit2]
谢谢大家试图猜出哪个是问题所在.我之前提出的问题是,有人遇到过这个问题并知道具体的问题.鉴于没有任何具体的信息显示,并且没有任何建议确实奏效,我决定接受允许我就问题得出更多结论的那个...... +1对于你所有有用的知识/想法(/猜测):-)
这可能是一个愚蠢的问题.或许我的黑客技能有限(我根本不练习).
我有一个看起来像这样的查询:
<?php
$query =<<<eot
SELECT table_x.field1,
table_x.field2,
table_y.*,
table_z.field4
FROM (
SELECT ...
) as table_y
LEFT JOIN table_x
ON table_x.field1 = table_y.field_x
LEFT JOIN table_z
ON table_z.field1 = table_y.field_z
WHERE table_x.field3 = '$something'
AND table_z.field4 = '1'
AND table_z.field5 = '2'
eot;
?>
Run Code Online (Sandbox Code Playgroud)
$something在使用它之前我有很多其他测试,比如$something = explode(' ',$something);(后来导致字符串)它们都不打算阻止注入但是它们使得给定注入很难得到实际查询.但是,有办法.我们都知道为一个仍然有效的其他东西替换空间是多么容易.
因此,使一个可能有害的SQL片段到达那个问题并不是一个真正的问题$something......但是如果它是多行的话,有没有办法对原始查询字符串的其余部分进行注释?
我可以评论AND table_z.field4 = '1'使用;--但不能评论以下内容AND table_z.field5 = '2'
是否可以打开多行注释/*而不关闭它或看起来像什么,因此允许注入忽略多行查询?
我有两个约会:
10-11-2010 and 17-11-2010
Run Code Online (Sandbox Code Playgroud)
现在我想选择所有具有这两者之间日期的行.
我怎样才能做到这一点?
通常当我在容器div中有浮动元素时,我会有这样的事情:
<div class="container">
<div style="float: left;">content</div>
<div style="float: left;">content</div>
<div style="clear:both;"></div>
</div>
Run Code Online (Sandbox Code Playgroud)
我觉得<div style="clear:both;"></div>在每个流畅的布局上都有这个非常烦人和丑陋.所以我尝试做这样的事情(使用css,但为简单起见):
<div class="container" style="clear:both;">
<div style="float: left;">content</div>
<div style="float: left;">content</div>
</div>
Run Code Online (Sandbox Code Playgroud)
并没有奏效.是否可以通过向.container类中添加内容来使其工作?
如果我有类似的东西:
CREATE INDEX idx_myTable_field_x
ON myTable
USING btree (field_x);
SELECT COUNT(field_x), field_x FROM myTable GROUP BY field_x ORDER BY field_x;
Run Code Online (Sandbox Code Playgroud)
想象一下myTable,周围500,000 rows和大多数field_x价值观是独一无二的.
由于我不使用任何WHERE子句,创建的索引在我的查询中是否会有任何影响?
编辑:我问这个问题,因为我在创建索引之前和之后的查询时间之间没有任何相关的区别; 它们总是花费大约8秒钟(当然这是太多时间!).这种行为有望吗?
php ×4
sql ×2
between ×1
browser ×1
css ×1
date ×1
email ×1
fluid-layout ×1
html ×1
indexing ×1
javascript ×1
object ×1
postgresql ×1