英语这种非正式口语的双重否定(e.g. ain't nothing)是negative concord,也就是双重否定表(语气强些的)否定。这类方言里I don't have nothing ≈ I have nothing.
ain't本身是be的一个非正式口语否定形式,比如He ain't kidding = He isn't kidding。
一般英语中的双重否定很少见,有也是跟普通话一样双重否定表肯定的。也就是,「一般英语中」,I don't have nothing = I have something.
需要说明的是,negative concord不是「逻辑错误」;认为它是“逻辑错误”的是把我们否定相消的思维带到其上作判断了,而这种不管对象语言是什么结构直接拿另一种已知语言的结构来套然后下正误判断的才是逻辑有点问题。不过还好,这个不要在意。我的理(cai1)解(xiang3)是,这种情况下并非否定词否定否定词,而是否定词给予否定性,因而不存在“否否得正”的可能性,也就无所谓“逻辑错误”了。
Negative concord也并不是「教育程度低的不合格语法」,在很多语言中其实它反而才是标准、正规、通顺的表达。关于它作为语法结构有多常见的问题详参Double negative。
PS: 还有一个assumption上的问题是,其实语言一点也不必合逻辑的。到处都合逻辑的那很难是自然语言。为什么fly就可以带直接宾语而fly out就不能(不及物)?为什么arrive和derive的名词形式分别是arrival和derivation?为什么breakfast不读作breikfa(h)st?为什么speak和steak的元音居然不一致?为什么居然可以说“She is a little pregnant”?←_←
而作为negative concord合逻辑的例子,波兰语的要表达"我谁都没看到"的话正常使用"I did not see nobody" (Nikogo nie widziałem),如果非要用"I saw nobody" (Widziałem nikogo)的话,意思会是"我看到了一个‘没有人’ (I saw an instance of nobody)"或者"我看到了‘没有人’ (I saw Mr. Nobody)"(记得小学英语的“我叫‘没有人’”的课文吗?),而非"我谁都没看到"。
斯洛文尼亚语"我谁都不知道"要说"I do not know no one" (Ne poznam nikogar);如果非说"I do not know anyone" (Ne poznam kogarkoli)的话,它的意思是“我不是谁都知道(而是知道某个特别的人)” ("I do not know just anyone": I know someone important or special.)。这么想想英语真是没逻辑呢(茶
顺带说一句,作为使用“没……之前”句式的人,我坚定认为这里的“之前”之“前”是名词,指“过去的一个时间”,而“之”的功能约等于“的”,这是我们从文言残存的一个固定搭配。并不是“双重否定表否定”,也不是“否定词无实义”。「我没来这儿之前……」→「在我没来这儿的某段以前的时间,……」大概就是这种效果。