我想为对象的方法添加自定义事件处理程序.
我有一个方法课.
class Post {
public function Add($title) {
// beforeAdd event should be called here
echo 'Post "' . $title . '" added.';
return;
}
}
Run Code Online (Sandbox Code Playgroud)
我想向方法添加一个事件Add,并将方法的参数传递给事件处理程序.
function AddEventHandler($event, $handler){
// What should this function do?
}
$handler = function($title){
return strtoupper($title);
}
AddEventHandler('beforeAdd', $handler);
Run Code Online (Sandbox Code Playgroud)
可以这样做吗?希望我的问题很明确.
这是一个例子:
class Test {
public function TestMethod() {
print_r($this); // Gives me "Test1 Object ( )"
}
}
class Test1 {
public function Test1Method() {
Test::TestMethod();
}
}
$test1 = new Test1;
$test1->Test1Method();
Run Code Online (Sandbox Code Playgroud)
我觉得这很奇怪.任何人都可以向我解释为什么会发生?
我有apache作为后端服务器,运行php脚本和nginx作为反向代理服务器,处理静态内容.一个php脚本,它给我一些进程的ID,然后执行这个过程(很长).我只需要向浏览器传递该进程的ID.
// ...
ob_start();
echo json_encode($arResult); // only this data should be passed to browser
$contentLength = ob_get_length();
header('Connection: close');
header('Content-Length: ' . $contentLength);
ob_end_flush();
ob_flush();
flush();
// then performed a long process
Run Code Online (Sandbox Code Playgroud)
(我用另一个ajax脚本检查进程的状态)
这在单独的apache下工作正常.但是当apache落后于nginx时我遇到了问题.在这种情况下,我只有在完成过程完成时才得到响应.
nginx设置:
server {
#...
proxy_set_header Connection close;
proxy_pass_header Content-Length;
#...
}
Run Code Online (Sandbox Code Playgroud)
但我仍然在FireBug中获得了Connection keep-alive.
如何让nginx立即给出apache的响应?
希望问题很清楚.
谢谢.
我有一个div元素:
<div id="tab1">
Tab data
</div>.
如何在此div变为可见(获取display: block;)时绑定自定义事件?
此外,当这个div变得不可见(获取display: none;)时,我想绑定一个事件.
我想在jQuery中这样做.
编辑:我正在使用ajax内容制作简单的标签.我希望仅当选项卡可见时,此选项卡上的内容才能进行ajax更新.
我正在尝试获取那些bit.ly重定向的url链接.我试图打开bit.ly链接,file_get_contents但它已经从重定向的网站获取内容,但如何获取其网址?
我需要像这样的MySQL查询:
UPDATE table_name
SET
1 = 1
WHERE
ID = 257
但是我得到了语法错误:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '1 = 1 WHERE ID = 257' at line 3
需要执行UPDATE查询而不更新任何内容.有什么解决方案?
当我想扩展两个父类时,我遇到了一种情况,但php不允许这样做.
为什么我不能extend超过一个类,但可以implement不止一个interface.扩展许多课程有什么问题?
在我得到解析错误之前,在我看来这很明显.
这是一种不好的做法吗?如果是这样,有哪些替代方案?
是否可以用其他语言?
我有一段: <p>I want to put a ding in the universe.</p>
我想更改文本中字符的属性,例如更改其颜色,所以在此之后段落应如下所示:
<p> <span class="color"> I </span> <span class="color"> w </span><span class="color"> a </span><span class="color"> n </span><span class="color"> t </span>... </p>
如何在jQuery中实现它?
一个优秀的程序员不应该使用哪些功能和技术?
可能ereg就是其中之一.
使用global关键字是一个好习惯,还是应尽可能避免使用?
简单的形式没有验证.如果用户多次按下提交按钮(即由于互联网滞后或其他原因),我不希望表单被提交多次.我对客户端解决方案感兴趣.jQuery或简单的JavaScript是可以接受的.
谢谢.
php ×7
jquery ×3
oop ×2
apache ×1
bit.ly ×1
class ×1
events ×1
form-submit ×1
javascript ×1
jquery-tabs ×1
large-files ×1
long-polling ×1
mysql ×1
nginx ×1
redirect ×1
sql-update ×1
tabs ×1
text-editor ×1
this ×1