是顺序耦合真的代码是一件坏事?
虽然它是一个反模式,但我看到的唯一风险是以错误的顺序调用方法,但是具有这种反模式的API /类库的文档应该照顾它.代码还有哪些其他问题是连续的?此外,这种模式很容易通过使用外观来修复.
谢谢
我们看到一些奇怪的行为,我们不确定它是否是apache,php,mysql或操作系统的问题,所以对于stackoverflow的大脑!
我们有Apache和mod_php与mysql5服务器通信.有时,进程会选择挂起,尝试从文件描述符中读取.
在它们上面填一个strace(所有悬挂过程显示相同的结果)给出了:
[root@prweb133v ~]# strace -p 8450
Process 8450 attached - interrupt to quit
read(57, <unfinished ...>
Run Code Online (Sandbox Code Playgroud)
那它试图读什么呢?
[root@prweb133v ~]# lsof -p 8450
...
...
httpd 8450 apache 57u IPv4 5546599 TCP
prweb133v.local:36615->hadat.local:mysql (ESTABLISHED)
Run Code Online (Sandbox Code Playgroud)
那是我们的mysql服务器!好的,所以也许它试图读取查询的结果,我想.检查mysql服务器上的进程列表,建立了连接但处于SLEEP状态.
Hmmmm.
那么我检查了netstat以查看谁正在尝试发送/接收内容.
在网络服务器上:
[root@prweb133v ~]# netstat -t -n -a | grep 36615
tcp 0 5 172.23.179.6:36615 172.23.179.67:3306
ESTABLISHED
Run Code Online (Sandbox Code Playgroud)
并且在mysql服务器上有一个已建立的连接,但在发送或接收队列中为0.
知道这些神秘的5个字节是什么,或者为什么他们随机不得到mysql服务器?
干杯!
麦克风
这是一个初学者的问题所以请耐心等待.
我有一个使用第三方库的课程(oniguruma,如果重要的话).我希望库方法完全由我自己修饰,这样我就可以随时切换我的类的底层实现.就像是:
// MyClass.h
@interface MyClass : NSObject ...
- (int) doSomething;
// MyClass.m
#import "some_library.h"
@implementation MyClass
- (int) doSomething
{
//call library's specific stuff
}
Run Code Online (Sandbox Code Playgroud)
到目前为止,这么好,但现在我需要在MyClass中使用一个具有一些库定义类型的实例变量(在"some_library.h"中声明的结构).当然我可以直接在界面部分导入库:
//MyClass.h
#import "some_library.h"
@interface MyClass : NSObject {
some_library_t blah;
}
- (int) doSomething;
@end
Run Code Online (Sandbox Code Playgroud)
但这正是我想要避免的 - 让MyClass的用户知道它的实现细节.
我可以以某种方式"隐藏"我的类界面中特定于库的类型吗?什么是标准做法?
我正在寻找适用于php(至少5.2)的现成语法和解析器,理想情况下是一种可以将php代码解析为可读AST(例如xml)的实用程序/库。解析器本身不必用php编写,源语言无关紧要。
什么是有效的理由不使用关键字公共,私人,受保护的PHP?
故事:我已经开始了一个项目,其团队在他们的代码中积极使用访问修饰符(甚至明确地"公开"),并想说服我这样做.我总是觉得这种东西在像php这样的动态语言中完全没用,但我意识到我的直觉在技术讨论中几乎不是一个论点.因此,我正在寻找一个可靠,清晰的解释为什么访问修饰符在php中无用(甚至有害).
我知道已经存在一些类似的主题
但是我发布这个有几个原因
TIA
我曾经尝试使用相同的密钥添加两个值,但它不起作用.它超越了旧的价值.是不是可以使用相同的键添加多个值,并且当通过键检索时,我得到一个链接列表,我可以迭代以获得所有不同的值?
它的功能非常强大,我担心它的稳定性和性能.
你怎么看?
UPDATE
我正在做的是这样的:
$old_dir = getcwd();
chdir( dirname($included_file) );
include ( $included_file );
chdir( $old_dir );
Run Code Online (Sandbox Code Playgroud)
基本上它只是这样include ( $included_file );,但在内部$included_file它找不到3.php与它本身位于同一目录中,所以我手动设置cwd并且它工作.但是如果我找到它无法找到的原因会很好至于为什么debug_backtrace需要,因为3.php它被另一个包含func,因为相对路径不起作用,它必须debug_backtrace用来获取包含文件路径,最后使用如下所述的绝对路径.
重现并不容易,因为上面的代码是在一个方法的上下文中,而且还有更多......如果没有其他人遇到过这种问题我想停在这里,无论如何,成本只是额外的3线,没什么大不了的.
我不确定如何描述我想要的东西.我想定义一个函数,其参数是本地VALUE而不是引用.
说我有我想要创建的对象列表
for(i = 0; i < 10; i++){
var div = document.createElement("div");
div.onclick = function(){alert(i);};
document.appendChild(div);
}
Run Code Online (Sandbox Code Playgroud)
现在我相信这个例子,无论我点击什么div,它都会提醒"10"; 因为那是变量i的最后一个值;
有没有办法/如何创建一个函数,参数是我在指定函数时的值...如果这有意义的话.
我需要一个查询来执行以下操作:从表Country中找到countryID where country ='UK'
然后使用找到的值
INSERT into towns (id, country_fk, name)
values (1, <value_found>, 'London').
Run Code Online (Sandbox Code Playgroud)
这可能吗?
更新我需要存储一次值,以便我可以在多个INSERTS(约100)中使用它
我正在根据世界各地的时区建立会议日历.我的问题是如何在Javascript中从用户选择的日期添加或减去时区.
例如,在选择表单上,用户将从表单中选择日期:然后我会得到结果并转换为如下日期...
var ldSelectDate = new Date(document.form1.year.value,
document.form1.month.value,
document.form1.day.value);
Run Code Online (Sandbox Code Playgroud)
我想在这个对象中添加12午夜.
然后我读入一个XML,它在两个城市之间的字符串中获得时区差异:例如喀布尔的"+0430"或纽约的"-0400"(夏令时).这是基于GMT的.
然后我计算两个城市之间的时区差异:它将返回字符串"830".(我假设我必须将它作为日期对象返回?).我完成了这部分返回一个字符串.我正在使用字符串.
然后我想循环一整天的24小时,在午夜12点设置喀布尔然后循环.我很可能会想到这一点 - 也就是说,在循环时将日期设置为整个小时.
我的问题是从喀布尔无痛地减去"830",看看会议时间在纽约会是什么时候.
如果我可以从喀布尔时间减去小时和分钟,那将是理想的选择.我注意到有人在javascript中减去了小时数,但没有减去分钟数.顺便说一句,那篇文章对我不起作用.
我用没有分钟的字符串做了这个,但是我搞砸了会议记录.必须有一个更简单的方法.
我会采用本机Javascript或jQuery的解决方案.
同样,我需要在特定日期减去/添加小时和分钟的时区差异.
谢谢