当前位置:首页>戏曲>黄仕忠:中国戏曲的起源与形成(附“回音壁”)

黄仕忠:中国戏曲的起源与形成(附“回音壁”)

  • 2026-06-27 20:03:24
黄仕忠:中国戏曲的起源与形成(附“回音壁”)

作者简介

黄仕忠,1960年生,浙江诸暨人。1989年在中山大学师从王季思、黄天骥教授获文学博士学位。现为中山大学中国古文献研究所所长、中山大学中文系教授。著有《〈琵琶记研究》《中国戏曲史研究》《戏曲文献研究丛稿》等。

中国戏曲的起源与形成

中国戏曲源远流长,支流众多,起初并无“戏曲”这个“流域总名”。用“戏曲”或“戏剧”指代传统戏曲,是基于晚清民国以来对文艺门类的新认知。尤其是20世纪初王国维的有关研究,不仅确立了“戏曲”之名,而且考定戏曲起源于先秦而形成于宋元。但随着戏曲作为艺术学的分支而发展为独立学科,王国维的工作便不断受到审视与质疑。

早在1909年出版的《戏曲考原》中,王国维就说:“戏曲者,谓以歌舞演故事也。”一般认为这就是他对“戏曲”的定义。后学更把此一“定义”视为等式,将之倒转过来,变成“以歌舞演故事者即戏曲”,以此追溯,不断将形成时间“提前”,遂有唐代说、汉代说以及先秦时已形成等说法;又认为“戏曲”固然是“歌舞+故事”,但若换用“戏剧”概念,则只需“代言+故事”即可,遂主张将“戏剧”与“戏曲”当作两种体裁:“戏剧”形成于汉代,标志是角牴戏“东海黄公”;“戏曲”形成于唐代,代表剧目为歌舞戏《踏摇娘》。显然,一旦更换概念或放宽标准,就会得出不同的结论。

【按:任二北批评王国维最着力,他认为唐代已经有成熟戏曲,他的《唐戏弄》(作家出版社1958年初版,上海古籍出版社1984年增订再版),就是一部“唐代戏剧史”。而且他认为这只是起点,所以期待有人写出魏晋戏剧史、先秦戏剧史。春秋说,参见陈多、谢明《先秦古剧考》,《戏剧艺术》,1978年第2期;《九歌》说,首创自闻一多,但仅称之为“一种雏形的歌舞剧”,见《闻一多全集》卷一(北京:三联书店,1981);《东海黄公》说,周贻白《中国戏剧史纲要》(上海古籍出版社,1979)称之为“中国戏剧形成一项独立艺术的开端”,吴国钦《中国戏曲史漫话》(上海文艺出版社,1980)亦予认同,;《踏谣娘》说,夏写时等力主其为戏曲形成标志,参见夏著《论中国戏剧批评》(齐鲁书社,1988)。】

其实,随着研究的深入,王国维对戏曲的认知也在变化。他在1912年写《宋元戏曲史》时,就没有使用这个“定义”,而是说“必合言语、动作、歌唱以演一故事,而后戏剧之意义始全”。他对“似”戏曲而非“真戏曲”的“古剧”的解读,其实是采用了亚里士多德关于“悲剧”(亦即戏剧)的定义:“对于一个严肃、完整、有一定长度的行动的摹仿。”以此为准绳,考定戏曲形成于宋元时期。

 《东海黄公》角抵戏画像石拓片(山东沂南东汉墓出土)

王国维以亚氏定义为依归,是经过深思熟虑的,他用的是“世界文学”的视野。他最初喜爱哲学,然后热衷于词,在而立之年才转向戏曲。在《三十自序》(1907)中,他痛感“吾中国文学之最不振者,莫戏曲若”,在《曲录》初稿序中,又感慨:“我国文学中之最不幸者莫戏曲若。”在中西方文学的比较视野中,他发现戏曲是“最不振”和“最不幸”者,在文学史里完全没有地位,更遑论与世界优秀戏剧相比了。他的目标是给戏曲寻求文学史地位,以此之故,他心中的“真戏曲”,须是有高度文学性并足以媲美世界戏剧的样式,遂坚持以传存的剧本为对象和依据。所以他用的是“狭义戏曲”概念,强调以剧本为据,而将“真戏曲”之前的演剧,称之为“古剧”。王氏之后,认同者亦称这类“古剧”为原始戏剧、前戏剧、泛戏剧、雏形戏剧等;反对者则多用“广义戏剧”概念,或是主张“大戏剧观”,关注俳优、傀儡、角牴、歌舞、滑稽戏等艺术形态,以为无论“戏”之大小,只要包含代言与故事,皆可视为“戏剧”,从而扩源为流。【按:从事傩戏、戏剧田野调查、地方戏及现代戏曲研究的学者,多主张用“大戏剧观”,并以为过多强调“曲”和剧本文学限制了研究者的视野。】

但王国维并不是先定下“戏曲”概念,然后从概念出发作讨论;他没有直接引用亚氏之说,而是将其贯穿在论述之中。他溯戏曲之源,沿两条途径:一是以时间为序,自上而下,由源导流,梳理所获演剧资料;二是以元杂剧和戏文为“真戏曲”之基底,自下而上,由流溯源,考察“真戏曲”构成要素的产生、形成过程。如此上下结合,诸水皆理。他把“综合”而成“真戏曲”的时间定在宋元,既是上下求索的结果,也是用北剧、南戏现存文本为考察依据的缘故。因为文献虽载南宋有戏文,但已无本子留存,所见者皆为明人之本(当时《永乐大典戏文三种》还未被发现),而杂剧则有元刊本,所以他首论北剧,再述南戏。

“戏曲”,包含扮演(代言)、故事、歌舞等成分。以“河源唯长”原则作考察,“扮演”是其中最长的支流,也是孕育最早的初源。扮演的“发生”,始自“源区”多条溪流的不同泉眼,遂有“游戏说”“模仿说”“劳动说”多种解释,这些也是人类艺术的共源。有意的“扮演”,始自先民的祭祀活动,主祀的巫和觋,充当了与神灵或祖先沟通的津梁,以“身体”为神祖降临的媒介,具有“扮演”和“表演”之义。故王国维将戏剧的“发生”,追溯至巫觋时代。【按:给“发生”加引号,是因为我一直主张将“发生”“起源”“形成”作区分,以免混同。详见拙文《戏曲起源、形成若干问题再探讨》,《艺术百家》,1997年第2期。并见拙著《中国戏曲史研究》,中山大学出版社,1997;又见《自选集》,大象出版社,2017。】

然而,正如长江之为长江,并不是由唯一的主干河道均匀地接纳沿途的来水,然后“成长”为“大江”。“长江”其实是一个流域的总称:在广袤的流域中,被绵延千里的巨大山脉所区隔,分头孕育出无数的支流,由泉而溪,由溪再河,由河聚江,分别汇为金沙江和岷江。两水在四川宜宾相汇,顿成巨流,江宽水长,被命名为“长江”。若按狭义概念,三江汇流处,才是“长江”形成时:今宜宾“三江公园”里,就设有“长江零公里处”标志。但依“河源唯长”原则,则可沿金沙江这最长一支而溯源,只是其上端另名通天河、沱沱河,真正的“源头”,不过是唐古拉山脉冰川下、高原沼泽间的涓涓细流而已。因此,长江存在于地球上已经亿万年,本无其名,八大水系,上游的金沙江、岷江诸名,以及汇流而成的“长江”,都不过是人类的一种称呼,一种“言说”。【按:这里包含着哲学认识论的观念。力图跳出客观、主观之争,“世界”实际缘于人类的认识而“存在”。我们讨论的并不是“客观世界”,而是人类认知中的“世界”。要意识到我们认知的局限,因为认知不仅需要用心去作感悟、把握,同时要用语词概念、逻辑来作表达,还会因概念理解的差异而产生歧义,因此要用平常心去看待“认知的边界”。】

同理,戏曲并不是由某些“小戏”经历岁月、吸收养分成长为“大戏”的,而是在一个广阔的“流域”里,由不同时空的水系孕育出无数上游支流,各支流又接纳不同的水源,分头壮大,终成巨流。何为源,何为流,何时成“江”,都只是后人的一种“言说”,并因所据尺度标准而有不同称呼。下文所述,也可看成是结合王氏著作而做的一种“言说”吧。【按:曾永义教授采用的就是从小戏而长大的模式,但我这里并不是针对他而说。因为从20世纪五、六十年代以来,有很多学者都保持着这种思维定式。】

我将“戏曲”的上游来水分为两大支流:“演剧”与“说唱”。它们是戏曲这种表演艺术的一体两面:前者是外化的形式,后者是内在的筋骨。两者分头孕育,各成流域,均含众多支流,待到交汇合一时,“真戏曲”便呈现于世。

“演剧”,包含代言扮演故事及诸多相关要素,它们又分别形成与发展,构成戏剧的雏形,也是“真戏曲”的基础。当中又有三条“来水”:代言扮演故事(包括歌舞性表演)的演化、脚色体系的形成、宫调联套体制的构建。

“说唱”,指说唱与小说,亦即叙事文学的发展,因为叙事的演进与表演艺术紧密相关。它也有三条“来水”:说唱及小说奠定了叙事文学的基础,为演剧准备了数量众多、长度合适、容量足够的故事,让演剧得以由短小的滑稽“段子”走向完整故事的敷演;说唱及小说不仅培植了作者虚构情节、构建剧情的能力,同时养育了善于欣赏的观众;说唱中人物的出场、下场模式,也影响了演剧的程式。

演剧是戏曲的“正源”,即最长最主要的一支。但由源成流,受到情节长度亦即故事“容量”的制约,还受到脚色体系和套曲体制这两个条件的限制。从先秦以来“歌舞+故事”或“代言+故事”的事例,为“真戏曲”降临奠定了基础。它们皆具备成“江”的资质,但如同雅砻江汇入金沙江,大渡河汇入岷江,它们是长江上游的重要来水,却并不能直接冠以“长江”之名。【吴晋邦批注:“最长”与“最主要”的并置,使人联想到河源推寻中,除却“河流惟远”的原则,还有“水量惟大”的原则,在某些概念的溯源中,“长”与“主要”可能会落在不一样的支脉上,产生更多复杂的问题。这是题外话,比拟江河的思维确实能够为溯源问题带来许多新思考。】

演剧一路,包含两条线索:由歌舞融合故事而形成歌舞戏,由俳优结合故事而萌生角牴戏、参军戏、滑稽剧,两者分头行进而又时相交汇,共同孕育出演剧的脚色体系。

从歌舞一线来看,周代《大武》等大型歌舞,歌颂祖先开疆拓土的事迹,具有扮演性质的表演,并含有叙事成分。这一线从先民时代到先秦时期,再到汉魏唐宋,延绵不绝。如唐代《踏摇娘》,有歌舞也有故事,“歌要齐声和,情教细语传”,这“和”即帮腔合唱,成为后世戏曲帮腔的源头。宋代有歌舞、队舞,且以大曲作叙事,这些也都为“戏曲”的出现作了铺垫。【按:即认为它们只是“戏剧要素”,而不是戏剧本身;是真戏曲形成的“必要条件”,而不是“充分条件”。也即不把扮演故事的“演剧”直接当作戏曲或戏剧的形成,而把它们作为“演剧”的构成要素,视作在长时段的不同空间里分头“养成”。】

从俳优一线来看,从优孟衣冠到角牴戏,再到参军戏,一路行进到宋杂剧、金院本,形成了对话为主的短剧,以言语相谑、滑稽调笑为特色。即把这类“科白戏剧”作为“用对白演长篇故事”的一种准备。

王国维认为,从参军戏以降,戏曲的基本要素已经具备,但还不是“真戏曲”,原因是“其事至简”。此说似乎自相矛盾,其实大有道理。如宋人杂剧称“段”,相当于今人的“小品”和相声的“段子”,它们是一台“晚会”中最受欢迎的节目,但内容简短,容量有限,不过演得一刻半时,无法以独立的方式作专场的戏剧演出,也即仍混于“百戏”“杂戏”,未能脱颖而出。【按:“段”这个词所包含的意蕴以及关联到的问题,还值得专门讨论。从宋人“段数”的“段”,到清代子弟书也用“段”,说明“段”这条线在说唱与演剧中从宋代贯穿到清代;但也因为这是“潜流”,故受到的关注不够。《五伦全备记》里,丘濬将全剧分为“二十八段”,这也是最早的“分出”处理,影响深远。又,“专场的戏剧演出”,“专场”这个说法,是傅谨在他的《中国戏剧史》(北京大学出版社,2014)里提出来的。】

中国戏曲有一套独特的脚色体系,脚色本身也有其形成过程。参军戏有苍鹘和参军两个演员,相当于后世戏曲中的副末和副净,但在唐代还没出现脚色名称。《梦粱录》记北宋杂剧:“末泥色主张,引戏色分付,副净色发乔,副末色打诨。或添一人,名曰装孤。”《武林旧事》载南宋“乾淳(1165-1189)教坊乐部”,杂剧三甲,有戏头而无末泥,有装旦而无装孤,副净作次净。《辍耕录》记金院本为五人:副净、副末、引戏、末泥、装孤。《青楼集志》说:“杂剧则有旦、末。……其余供观者,悉为之外脚。”南戏,有生、旦、净、末、丑五个主要脚色。可见北剧与南戏对宋杂剧的脚色有所继承而又有明显区别。脚色的由少到多,由人物成为行当,也对应着故事从简单到复杂,演员则有了职业规范、门槛、分类,所以“真戏曲”出现,也是演剧行业成熟的标志。

从单只曲子到按宫调组成套曲,也有个过程。套曲模式可追溯到唐宋大曲。董解元的《西厢记诸宫调》,按宫调用曲牌,都只缀一两个曲牌。有序次地组合曲牌成套曲,金元之际才形成;所以用四个套曲构成元杂剧,在金末元初才出现。明初朱权说关汉卿“初为杂剧之始”,应有所据。南戏的音乐处理则与唱赚等关系密切,缠达用二曲迎互往还的方式,在南戏中得到了继承。

一定长度故事的出现、脚色体系的形成、套曲体制的构建,是“真戏曲”形成的三项“必要条件”,它们的形成情况,构成了“真戏曲”形成的“短板”(上限)。

再来看说唱与小说的发展情况。

王国维在重点考察了唐宋歌舞剧与宋金滑稽剧之后,又提出:“欲知宋元戏剧之渊源,不可不于其他方面求之。”遂设专章讨论“宋之小说杂戏”,认为:“至其变为演事实之戏剧,则当时之小说实有力焉。”这里“演事实”指生活事实,而不是滑稽调笑的段子。宋杂剧、金院本均以副净色为主演,夏伯和《青楼集志》说:“院本大率不过谑浪调笑,(元)杂剧则不然”:分为旦本、末本,分别以旦、末为主演,内容严肃,所演君臣、母子、夫妇、兄弟、朋友等类杂剧,“皆可以厚人伦、美风化,又非唐之传奇、宋之戏文、金之院本所可同日而语矣!”这说明元人已经关注到杂剧编演的“严肃”一义。王国维也是据此而论定“滑稽戏”尚非“真戏曲”。【学者多从脚色而看其相承,对脚色变化这种“现象”所导致演剧发生的变化,则考虑不多。胡忌留意到:院本的主角为净,元杂剧的主角为旦或末,两者不仅是脚色的不同,也体现出演出对象内容的变化(见其论文集《菊花新曲破》,中华书局,2008)。我认为其说甚是,可以为王国维的观点作一注脚。】

王国维《宋元戏曲史》书影,1930年商务印书馆《万有文库》版

王国维说,“元曲最佳之处,不在其思想结构,而在其文章。其文章之妙,亦一言以蔽之,曰:有意境而已矣!”只是他在具体阐释时,仍归于元曲的辞章而导致语焉不详。也可能他有所感悟,但未能找到一种合适的理论来阐释。我认为“有意境”,应是指所构建的作品世界。“戏”,本质上是“假”的,充满“假定性”。这假定性,不仅是指动作表演,也兼指故事构设。元杂剧故事,大多有一个作者刻意强调的预设前提,而并不在意它是否符合“生活的真实”。运用这一“假定性”,要求有高度的虚构能力,能迅速构建戏剧冲突。这种能力并不是天生的,需要积累,说唱与小说正是在这方面提供了帮助。【按:关于“意境说”,我已另有专文讨论。】

换言之,“真戏曲”必须构建独立的文学世界(意境),需要足够的“情节长度”,还需有“戏剧冲突”,历经起承转合,完成人物的命运书写与性格塑造,同时寄托作者的思想,排解内心的情感,娱己也娱人。若一味以滑稽调笑取悦于人,便达不到“真戏曲”的境界。所以这里包含了以“世界文学”为尺度作考量。所以,当人们在批评王国维“重文学轻舞台”时,忘记了王国维其实有比他们更广阔的视野、更博大的胸怀。王国维不会满足于“关起门来称老大”,他的学术始终保持着国际视野,以最高标准来作要求。

北剧南戏中,主要人物出场时,有自报家门身份的特殊人格体例。它源于史传,经宋人“讲史”“平话”说书而得以强化,在《三国》《水浒》中可见遗留。这是戏曲与说唱具有共源性的格式之一。说唱的形式对于戏曲的影响,与演剧一线为戏曲的孕育所作的奠基,具有同等重要的意义,只是这方面的工作,还有待深入开掘。【按:做小说研究的学者,对人物出场时自叙身份的方式,有过研讨。我则在此基础上,提出戏曲里人物的出场,一般是由主要人物带出家属,其自我描述格式,与小说同源。又,戏曲的下场诗,与说唱小说回末诗,有其关联。】

以歌舞演故事、用代言演故事等诸多戏曲构成要素,其“发生”与“形成”,远早于“戏曲”本身。但它们大多仍从属于百戏、杂戏。戏曲一变而成“大型”之戏,并不是单纯从演剧角度而作的增量,而是“综合”或“嫁接”汇合其他“支流”而完成的“突变”。

北剧与南戏究竟是如何“综合”的?如何从宋金时代的杂剧、院本、说唱,一变而为“戏曲”?简言之,就是将代言扮演和歌舞(演剧方式),加之于长篇说唱(故事)之上的结果。这是因二者嫁接、融合而产生的突变:正如金沙江、岷江合流而“突变”为长江。

首先,用歌舞和代言扮演的方式,来叙述一个足够长度的严肃故事,宋人已经用不同方式作过多种尝试。只是最初的“嫁接”,交而未融,未能完成蜕变。

一是叙事性大曲,如董颖《道宫薄媚·西子词》、曾布《水调歌头·冯燕传》、史浩《采莲·寿乡词》及《剑舞》(项庄刺沛公及公孙大娘舞剑器事)等。二是鼓子词,如赵令畤《蝶恋花鼓子词》,以元稹《会真记》原文叙事为基底,插入【蝶恋花】诸曲作歌咏。这里有叙事,有歌舞,但如王国维所说:“皆为叙事体,而非代言体。”即故事仍用叙事体,歌和舞只是一种“题咏”抒发。另一方面,“四十大曲”在北剧、南戏中也享有盛名,被戏班当作研习与演出的对象。

其次,用诸宫调来表演长篇故事。最成功的便是董解元《西厢记诸宫调》。它拆解和改造了元稹原作,使之成为一种全新的民间说唱——它用曲文娴熟地叙事和抒情,用曲唱重新演绎了崔张故事,为王实甫《西厢记》杂剧奠定了基础。而《张协状元》中开戏前所演南诸宫调《张协传》,又是另外一例。前者通向元初杂剧,后者则通往南宋戏文。

将这种成熟的诸宫调故事,从坐着唱叙,站起来变成代言演出,一种全新的体裁便由此产生(毛西河说杂剧从“打连厢”来,亦是此意)。《张协状元》明言“诸宫调唱出来因”,所以南戏很可能是用代言演出结合南诸宫调而来的。嵊县的越剧,原是以清唱为主的说唱,在浙江南部农村演出时,应观众要求,改为穿戏衣代言演出,一个新的剧种就此产生。把演剧嫁接于说唱,迅即完成从说唱向戏曲的“突变”,在地方戏中有诸多例证,在宋代也完全可能。【吴晋邦批注:以地方戏佐证,甚能服人。用今日之情理合理地推想古代的事情发展,非常值得学习。】

同时,这“创新”依然十分艰难。南戏用“曲”敷演故事,有主角唱大段独唱,也有其他脚色对唱、同唱及帮腔,要通过曲唱来塑造人物、刻划心理、构成人物冲突,未免积淀不足,如《张协状元》中有许多“原始”而简陋的表演。南戏形成后缺少“名公”参与,也与其艺术上的幼稚和提升上的困难有一定的关系。

元杂剧“一人主唱”方式,表明它深受诸宫调等说唱样式的影响。即是把说唱中一人主唱的模式,变为代言体正末或正旦主唱,其他角色都只配合着做一些动作,而不能参与对唱、同唱。它仿佛是某位“歌唱家”的一台演唱会,还不是“充分戏剧化”演剧,而是一种向说唱倾斜的“畸形戏剧”。另一方面,这种模式能高度发挥主角的唱功,只需把握主角的心理,也让曲文的写作难度大大降低,“名公才人”可用“代作”抒情长诗的方式,就能轻松把捏,从而造就剧本文学的横空出世,亦使“元曲”能与唐诗、宋词相提并论,成为“一代之文学”。【按:从“技术层面”上来看,长篇南戏,每个人物都能唱,也意味着需要同时塑造几个主要人物,创作上的难度要大得多。杂剧只需关注主唱者,对其他人物的塑造要求降低,所以写作难度也就变小了。同时,“代人”“代拟”的诗歌写作,这种揣摸其心理而写长篇抒情诗,原是文人的擅长。把这种创作技法的积累用于杂剧套曲的写作,自是驾轻就熟、信手拈来。】

王国维研究戏曲之初意,是有感于古希腊戏剧和莎士比亚戏剧在西方文学史上享有至高地位,而为中国戏曲鸣不平。但事实上只有北剧南戏有剧本留存,也只有元杂剧这种严肃写作,才让中国戏曲堪与西方戏剧媲美,因此他用“狭义戏剧”作悲剧解读,认为《赵氏孤儿》《窦娥冤》等杰作,“即列之于世界大悲剧中,亦无愧色也”。

当今学者大多批评王国维重文学而轻舞台,其实是用“广义戏剧”作考论,遂使“支流”之水也被当成“成熟”的江河。看来,只要所用的概念与观察的视野未能得到统一,这类争议就不会停止。

回音壁

黄仕忠:原稿限于篇幅,不能展开。我稍加批注,以供大家讨论。

斯维(重庆大学):老师大作通俗易懂,用水流比喻揭示戏曲起源以及“真戏曲”三要素。

范德怡(集美大学):这篇文章有两条线,一个是说清楚中国戏曲的起源与形成这个问题,另一个是为王国维辩护。这其实是两个任务,但确实可以相互映照。您这组随笔文章都是具有高度原创性质的,很多讨论超越了单篇论文所能做的。

董诗琪(南昌大学):将“有意境”理解为“建构独立的文学世界”,深得其旨。

陈艳林(南昌大学):从现象学观察到“有生命”的学理构建,由曲而剧,代言、脚色、联套各色支流汇聚或分汊,都有不同的“可能性”诞生。老师的文笔在这组文章中又继续酣畅发挥。

刘轩(浙江传媒学院):“戏曲并不是由某些‘小戏’经历岁月、吸收养分成长为‘大戏’的”,老师的这个论断很有趣,也引起了我的思考。我很久之前也读过曾永义老师的著作,并接受了他的“小戏”“大戏”之论。在研究昆剧的演剧史时,也基本遵循这一思路。老师这个说法给了我新的启发。之前我在写作时,涉及到昆山腔如何由曲变剧,除了梁辰鱼专为昆腔所作传奇之外,具体的“表演”如何与“歌唱”结合在一起,现有文献和论述都还比较模糊。或许换一个思路,从不同门类的“相融”角度着手,会有新的发现也未可知。

“‘真戏曲’必须构建独立的文学世界(意境),需要足够的‘情节长度’,还需有‘戏剧冲突’,历经起承转合,完成人物的命运书写与性格塑造,同时寄托作者的思想,排解内心的情感,娱己也娱人。”老师的这个解释真透彻!或也可看作高明在《琵琶记》卷首说的“论传奇,乐人易,动人难”之“动人”一说切实的注解。

“让曲文的写作难度大大降低,‘名公才人’可用‘代作’抒情长诗的方式,就能轻松把捏,从而造就剧本文学的横空出世,亦使‘元曲’能与唐诗、宋词相提并论,成为‘一代之文学’。” 老师这个从创作难易的角度,推论为何南戏晚于杂剧达到艺术上的成熟,令人有恍然大悟的感觉。从这个角度来看,研究某个具体的声腔系统的发展与兴衰,往往多集中于其社会背景、艺术审美等等的变化所产生的影响,而其“操作”层面的难易,往往是容易被忽视的问题。

殷娇(中国艺术研究院):戏曲是叙事文学与表演艺术在深层结构上的融合,那么就能拓展出“表演史”“叙事接受史”“文学建构史”等可交叉领域,能够打开许多有待深入的空间。更重要的是,这篇文章不仅让我对戏曲起源有了更丰富的认识,同时在方法论上让我意识到:这不仅是一篇关于戏曲起源的专论,更是一次关于如何理解历史、如何界定概念、如何在学科对话中推进认知的示范之作。另外,脚注中提及的学者观点、与同行的交流甚至争论,都展现出一种开放而严谨的学术生态,不回避分歧,反而将其作为思考深化的契机。接下来我将认真研读您的《王国维〈宋元戏曲史的再评价》一文。

李颖瑜(香港中文大学-深圳):我觉得您用“长江”作比非常巧妙,将很多停留在认识论和语言哲学层面的问题,一一梳理清楚,将读者尽可能拉到同一对话层面,而不至于因概念理解的差异而原地打转。王国维的“世界视野”也给我另一重启发,在对比中发现特点,从特点里考索源流。

之前读商伟老师关于中国戏曲自觉意识的论述,很受启发,他从戏曲表演的自觉意识向下来看这一传统对小说的影响,您文中则向上溯源,探讨史传、小说对戏曲“自报家门”体例的影响,虽然您提到这个话题还有待深入开掘,但寥寥数语已经勾勒出了一个庞大的议题——如何从文学传统来看戏曲的自觉意识。我觉得这个话题非常有意思,涉及中国戏曲本体论的问题,且跟西方戏剧的“摹仿论”形成鲜明对照。

林杰祥(中山大学):感受到老师的戏曲观,是一种演变发展的戏曲观。实际上,很多学术观点的分歧和矛盾,其核心要点都是“错位”,资料理解的错位,或者观念、立场的错位,以及研究视角的错位,这些错位之所以形成,就是对象、标准、方法不一致所造成。而老师的思路是将戏曲及其要素拆解、梳理。用河流是个很好的比喻,“俳优”“参军戏”“宋元杂剧”“明清传奇”其实就是不同的河段,老师是在看清楚整个河流发展的视野下,再重新分析不同“河段”的特点,及其最终“汇流”的方式。这是给人最多启发的。

陈佳妮(中山大学-珠海):对源流考辩,印象很深刻,尤其是先厘清戏曲重要元素演剧和说唱,然后再分别论证两者的“来水”,这一过程逻辑性强、极具科学性,与常看到的“体验派研究”迥乎不同。在我看来演剧和说唱两者体现了戏曲叙事、抒情和音乐性的错综缠绕,确乎可称为最重要的两大元素。老师所言的综合和融合很有道理,它是历史过程性的,甚至其尝试有成功有失败,而非大家想象中的各自发展,到戏曲将其综合,这种对历史实事求是的态度非常值得学习!

后文中老师略微提及戏曲体例与史传、说书的关系,这也很具启发性,戏曲中不仅很多历史题材,而且其戏剧冲突、人物命运性格的塑造,也确乎有很多吸收史传之处,似乎又可与其文本源流相关联。

还有一点吸引我的是,老师将意境阐释为“所构建的作品世界”,虽然术语翻译传统上将意境翻译为artistic conception,但是现在也有越来越多学者提倡用“realm”或者“scope”来强调“境”所体现的作品所创造出的独特空间视野,和老师的解读似有异曲同工之处。

曾庆兰(中山大学博士生):今天再读,一是将新、旧稿对读,体味您是如何用简单几句、几个字词的调整便令文章和缓平顺,偶尔看到之前作的某处修订、某个说法被接纳,便暗自窃喜;二是读您文下的注释,体味文中平静和谐的一两句话背后是学界如何汹涌的交锋,跟着您去看悄悄埋给有心人的小彩蛋;三是读邻家的学长学姐们各出机杼的回音壁,增长见识。

张译文(中山大学博士生):黄老师建议的“结合生命维度”进行想象,我理解为,应将脚色体制放回其具体的“演出生态”中去理解:一个以滑稽调笑为主的“段子”式宋杂剧,和一个要演绎完整悲欢人生的元杂剧,对脚色的叙事功能、情感容量和技艺要求必然不同。脚色的演变,不仅是名称的传承,更是戏剧内容从“戏谑调笑”走向“严肃叙事”时,演员专业分工精细化和深化的过程。从“副净发乔”到“正末/正旦主唱”,核心脚色从喜剧功能的承担者转变为悲剧情感的承载者,这或许本身就是“真戏曲”形成的关键标志。可能我的理解比较浅显,但对脚色的内容,之前从老师的文章中看到的内容,比较感兴趣。

陈田珺(华东师范大学):对老师的批注印象深刻,体现出成文举重若轻,但写作过程着力甚多,举重若轻的表面背后是学养积淀的厚重。以长江作比喻,此为散文家笔法,却使学术观点更明晰。

“这假定性,不仅是指动作表演,也兼指故事构设。”呼应《“戏曲”“戏剧”的前世今生》一文中的观点。

章雪晴(绍兴大学):关于戏曲到底何时起源、何时形成、何时成熟的问题,学术界有很多不同的说法,实际上涉及到如何定义戏曲的问题,而大部分论述的潜在逻辑也是认为戏曲的发展有一条线性的脉络。您的比喻跳出了这种逻辑,打开了视野,使人一下子豁然开朗!

陆韵(中山大学硕士生):关于王国维的“综合”说,老师90年代的文章曾结合达尔文进化论和“突变”加以论述,这篇文章的“长江”之喻更是精妙。广、狭义不同“长江”概念的区别,以及两种言说方式下对“长江”的溯源,恰好契合并生动诠释了王国维《宋元戏曲史》中广义戏剧和“真戏曲”的分野,及其探讨戏曲起源的两条路径。后人的概念之争本身是无意义的,透过概念背后不同的界限、标准,看到提出者、使用者的知识视野和对话语境,进而“悬置”人为界定的概念,回归到对事物本身的客观描述,才是我们前进的方向。

老师的文章里总有许多“微言大义”,很多话语都是字斟句酌,有对话、尺度和余地的。要想读懂,需要我们阅读相关书籍、了解相关讨论,联系老师提出的其他戏曲史重要观点。每次阅读都是一个思维锻炼的过程。

周菁若(中山大学本科生):如果说上一篇文章为我清晰描绘了“戏曲”“戏剧”两条概念河流的“下游”分野与汇合,那么这篇文章,则是带领我一路逆流而上,直至“河源唯长”的起点,并在途中教会了我如何看待整个水系形成的“地图”。

以下是一些我最突出的感受和思考。

首先文章开篇对王国维研究的再审视,以及用“长江”流域来比喻戏曲起源与形成,对我而言是一次认知上的“祛魅”和重建。

其次这篇文章我最喜欢的部分之一,是您对王国维的深度“同情之理解”。您敏锐地指出,王国维坚持以元杂剧为“真戏曲”标杆,并暗用亚里士多德的悲剧定义,其深层动机源于一种“世界文学”的比较视野。他为“最不振”的中国戏曲鸣不平,其目标是寻找能够与西方经典戏剧媲美的杰作,从而为中国戏曲在世界文学殿堂中争取地位。因此,他的“狭义”并非视野狭隘,恰恰相反,是一种自觉的、高标准的学术建构。这让我深刻体会到,理解一个学者的结论,必须回到他提出问题的原始语境和终极关怀。批评他“重文学轻舞台”,很多时候是错置了对话的层面。

按:本文原载于《文史知识》2026年第2期。本次推送,是采用黄仕忠教授提供的文章版本,并附上“回音壁”,以飨读者。

 编辑:吴越

最新文章

随机文章

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-06-28 07:07:39 HTTP/2.0 GET : https://f.sjds.net/a/481087.html
  2. 运行时间 : 0.105607s [ 吞吐率:9.47req/s ] 内存消耗:4,399.66kb 文件加载:140
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=a40ef285114f9589043be77bdcdf44c6
  1. /yingpanguazai/ssd/ssd1/www/f.sjds.net/public/index.php ( 0.79 KB )
  2. /yingpanguazai/ssd/ssd1/www/f.sjds.net/vendor/autoload.php ( 0.17 KB )
  3. /yingpanguazai/ssd/ssd1/www/f.sjds.net/vendor/composer/autoload_real.php ( 2.49 KB )
  4. /yingpanguazai/ssd/ssd1/www/f.sjds.net/vendor/composer/platform_check.php ( 0.90 KB )
  5. /yingpanguazai/ssd/ssd1/www/f.sjds.net/vendor/composer/ClassLoader.php ( 14.03 KB )
  6. /yingpanguazai/ssd/ssd1/www/f.sjds.net/vendor/composer/autoload_static.php ( 4.90 KB )
  7. /yingpanguazai/ssd/ssd1/www/f.sjds.net/vendor/topthink/think-helper/src/helper.php ( 8.34 KB )
  8. /yingpanguazai/ssd/ssd1/www/f.sjds.net/vendor/topthink/think-validate/src/helper.php ( 2.19 KB )
  9. /yingpanguazai/ssd/ssd1/www/f.sjds.net/vendor/topthink/think-orm/src/helper.php ( 1.47 KB )
  10. /yingpanguazai/ssd/ssd1/www/f.sjds.net/vendor/topthink/think-orm/stubs/load_stubs.php ( 0.16 KB )
  11. /yingpanguazai/ssd/ssd1/www/f.sjds.net/vendor/topthink/framework/src/think/Exception.php ( 1.69 KB )
  12. /yingpanguazai/ssd/ssd1/www/f.sjds.net/vendor/topthink/think-container/src/Facade.php ( 2.71 KB )
  13. /yingpanguazai/ssd/ssd1/www/f.sjds.net/vendor/symfony/deprecation-contracts/function.php ( 0.99 KB )
  14. /yingpanguazai/ssd/ssd1/www/f.sjds.net/vendor/symfony/polyfill-mbstring/bootstrap.php ( 8.26 KB )
  15. /yingpanguazai/ssd/ssd1/www/f.sjds.net/vendor/symfony/polyfill-mbstring/bootstrap80.php ( 9.78 KB )
  16. /yingpanguazai/ssd/ssd1/www/f.sjds.net/vendor/symfony/var-dumper/Resources/functions/dump.php ( 1.49 KB )
  17. /yingpanguazai/ssd/ssd1/www/f.sjds.net/vendor/topthink/think-dumper/src/helper.php ( 0.18 KB )
  18. /yingpanguazai/ssd/ssd1/www/f.sjds.net/vendor/symfony/var-dumper/VarDumper.php ( 4.30 KB )
  19. /yingpanguazai/ssd/ssd1/www/f.sjds.net/vendor/topthink/framework/src/think/App.php ( 15.30 KB )
  20. /yingpanguazai/ssd/ssd1/www/f.sjds.net/vendor/topthink/think-container/src/Container.php ( 15.76 KB )
  21. /yingpanguazai/ssd/ssd1/www/f.sjds.net/vendor/psr/container/src/ContainerInterface.php ( 1.02 KB )
  22. /yingpanguazai/ssd/ssd1/www/f.sjds.net/app/provider.php ( 0.19 KB )
  23. /yingpanguazai/ssd/ssd1/www/f.sjds.net/vendor/topthink/framework/src/think/Http.php ( 6.04 KB )
  24. /yingpanguazai/ssd/ssd1/www/f.sjds.net/vendor/topthink/think-helper/src/helper/Str.php ( 7.29 KB )
  25. /yingpanguazai/ssd/ssd1/www/f.sjds.net/vendor/topthink/framework/src/think/Env.php ( 4.68 KB )
  26. /yingpanguazai/ssd/ssd1/www/f.sjds.net/app/common.php ( 0.03 KB )
  27. /yingpanguazai/ssd/ssd1/www/f.sjds.net/vendor/topthink/framework/src/helper.php ( 18.78 KB )
  28. /yingpanguazai/ssd/ssd1/www/f.sjds.net/vendor/topthink/framework/src/think/Config.php ( 5.54 KB )
  29. /yingpanguazai/ssd/ssd1/www/f.sjds.net/config/app.php ( 0.95 KB )
  30. /yingpanguazai/ssd/ssd1/www/f.sjds.net/config/cache.php ( 0.78 KB )
  31. /yingpanguazai/ssd/ssd1/www/f.sjds.net/config/console.php ( 0.23 KB )
  32. /yingpanguazai/ssd/ssd1/www/f.sjds.net/config/cookie.php ( 0.56 KB )
  33. /yingpanguazai/ssd/ssd1/www/f.sjds.net/config/database.php ( 2.48 KB )
  34. /yingpanguazai/ssd/ssd1/www/f.sjds.net/vendor/topthink/framework/src/think/facade/Env.php ( 1.67 KB )
  35. /yingpanguazai/ssd/ssd1/www/f.sjds.net/config/filesystem.php ( 0.61 KB )
  36. /yingpanguazai/ssd/ssd1/www/f.sjds.net/config/lang.php ( 0.91 KB )
  37. /yingpanguazai/ssd/ssd1/www/f.sjds.net/config/log.php ( 1.35 KB )
  38. /yingpanguazai/ssd/ssd1/www/f.sjds.net/config/middleware.php ( 0.19 KB )
  39. /yingpanguazai/ssd/ssd1/www/f.sjds.net/config/route.php ( 1.89 KB )
  40. /yingpanguazai/ssd/ssd1/www/f.sjds.net/config/session.php ( 0.57 KB )
  41. /yingpanguazai/ssd/ssd1/www/f.sjds.net/config/trace.php ( 0.34 KB )
  42. /yingpanguazai/ssd/ssd1/www/f.sjds.net/config/view.php ( 0.82 KB )
  43. /yingpanguazai/ssd/ssd1/www/f.sjds.net/app/event.php ( 0.25 KB )
  44. /yingpanguazai/ssd/ssd1/www/f.sjds.net/vendor/topthink/framework/src/think/Event.php ( 7.67 KB )
  45. /yingpanguazai/ssd/ssd1/www/f.sjds.net/app/service.php ( 0.13 KB )
  46. /yingpanguazai/ssd/ssd1/www/f.sjds.net/app/AppService.php ( 0.26 KB )
  47. /yingpanguazai/ssd/ssd1/www/f.sjds.net/vendor/topthink/framework/src/think/Service.php ( 1.64 KB )
  48. /yingpanguazai/ssd/ssd1/www/f.sjds.net/vendor/topthink/framework/src/think/Lang.php ( 7.35 KB )
  49. /yingpanguazai/ssd/ssd1/www/f.sjds.net/vendor/topthink/framework/src/lang/zh-cn.php ( 13.70 KB )
  50. /yingpanguazai/ssd/ssd1/www/f.sjds.net/vendor/topthink/framework/src/think/initializer/Error.php ( 3.31 KB )
  51. /yingpanguazai/ssd/ssd1/www/f.sjds.net/vendor/topthink/framework/src/think/initializer/RegisterService.php ( 1.33 KB )
  52. /yingpanguazai/ssd/ssd1/www/f.sjds.net/vendor/services.php ( 0.14 KB )
  53. /yingpanguazai/ssd/ssd1/www/f.sjds.net/vendor/topthink/framework/src/think/service/PaginatorService.php ( 1.52 KB )
  54. /yingpanguazai/ssd/ssd1/www/f.sjds.net/vendor/topthink/framework/src/think/service/ValidateService.php ( 0.99 KB )
  55. /yingpanguazai/ssd/ssd1/www/f.sjds.net/vendor/topthink/framework/src/think/service/ModelService.php ( 2.04 KB )
  56. /yingpanguazai/ssd/ssd1/www/f.sjds.net/vendor/topthink/think-trace/src/Service.php ( 0.77 KB )
  57. /yingpanguazai/ssd/ssd1/www/f.sjds.net/vendor/topthink/framework/src/think/Middleware.php ( 6.72 KB )
  58. /yingpanguazai/ssd/ssd1/www/f.sjds.net/vendor/topthink/framework/src/think/initializer/BootService.php ( 0.77 KB )
  59. /yingpanguazai/ssd/ssd1/www/f.sjds.net/vendor/topthink/think-orm/src/Paginator.php ( 11.86 KB )
  60. /yingpanguazai/ssd/ssd1/www/f.sjds.net/vendor/topthink/think-validate/src/Validate.php ( 63.20 KB )
  61. /yingpanguazai/ssd/ssd1/www/f.sjds.net/vendor/topthink/think-orm/src/Model.php ( 23.55 KB )
  62. /yingpanguazai/ssd/ssd1/www/f.sjds.net/vendor/topthink/think-orm/src/model/concern/Attribute.php ( 21.05 KB )
  63. /yingpanguazai/ssd/ssd1/www/f.sjds.net/vendor/topthink/think-orm/src/model/concern/AutoWriteData.php ( 4.21 KB )
  64. /yingpanguazai/ssd/ssd1/www/f.sjds.net/vendor/topthink/think-orm/src/model/concern/Conversion.php ( 6.44 KB )
  65. /yingpanguazai/ssd/ssd1/www/f.sjds.net/vendor/topthink/think-orm/src/model/concern/DbConnect.php ( 5.16 KB )
  66. /yingpanguazai/ssd/ssd1/www/f.sjds.net/vendor/topthink/think-orm/src/model/concern/ModelEvent.php ( 2.33 KB )
  67. /yingpanguazai/ssd/ssd1/www/f.sjds.net/vendor/topthink/think-orm/src/model/concern/RelationShip.php ( 28.29 KB )
  68. /yingpanguazai/ssd/ssd1/www/f.sjds.net/vendor/topthink/think-helper/src/contract/Arrayable.php ( 0.09 KB )
  69. /yingpanguazai/ssd/ssd1/www/f.sjds.net/vendor/topthink/think-helper/src/contract/Jsonable.php ( 0.13 KB )
  70. /yingpanguazai/ssd/ssd1/www/f.sjds.net/vendor/topthink/think-orm/src/model/contract/Modelable.php ( 0.09 KB )
  71. /yingpanguazai/ssd/ssd1/www/f.sjds.net/vendor/topthink/framework/src/think/Db.php ( 2.88 KB )
  72. /yingpanguazai/ssd/ssd1/www/f.sjds.net/vendor/topthink/think-orm/src/DbManager.php ( 8.52 KB )
  73. /yingpanguazai/ssd/ssd1/www/f.sjds.net/vendor/topthink/framework/src/think/Log.php ( 6.28 KB )
  74. /yingpanguazai/ssd/ssd1/www/f.sjds.net/vendor/topthink/framework/src/think/Manager.php ( 3.92 KB )
  75. /yingpanguazai/ssd/ssd1/www/f.sjds.net/vendor/psr/log/src/LoggerTrait.php ( 2.69 KB )
  76. /yingpanguazai/ssd/ssd1/www/f.sjds.net/vendor/psr/log/src/LoggerInterface.php ( 2.71 KB )
  77. /yingpanguazai/ssd/ssd1/www/f.sjds.net/vendor/topthink/framework/src/think/Cache.php ( 4.92 KB )
  78. /yingpanguazai/ssd/ssd1/www/f.sjds.net/vendor/psr/simple-cache/src/CacheInterface.php ( 4.71 KB )
  79. /yingpanguazai/ssd/ssd1/www/f.sjds.net/vendor/topthink/think-helper/src/helper/Arr.php ( 16.63 KB )
  80. /yingpanguazai/ssd/ssd1/www/f.sjds.net/vendor/topthink/framework/src/think/cache/driver/File.php ( 7.84 KB )
  81. /yingpanguazai/ssd/ssd1/www/f.sjds.net/vendor/topthink/framework/src/think/cache/Driver.php ( 9.03 KB )
  82. /yingpanguazai/ssd/ssd1/www/f.sjds.net/vendor/topthink/framework/src/think/contract/CacheHandlerInterface.php ( 1.99 KB )
  83. /yingpanguazai/ssd/ssd1/www/f.sjds.net/app/Request.php ( 0.09 KB )
  84. /yingpanguazai/ssd/ssd1/www/f.sjds.net/vendor/topthink/framework/src/think/Request.php ( 55.78 KB )
  85. /yingpanguazai/ssd/ssd1/www/f.sjds.net/app/middleware.php ( 0.25 KB )
  86. /yingpanguazai/ssd/ssd1/www/f.sjds.net/vendor/topthink/framework/src/think/Pipeline.php ( 2.61 KB )
  87. /yingpanguazai/ssd/ssd1/www/f.sjds.net/vendor/topthink/think-trace/src/TraceDebug.php ( 3.40 KB )
  88. /yingpanguazai/ssd/ssd1/www/f.sjds.net/vendor/topthink/framework/src/think/middleware/SessionInit.php ( 1.94 KB )
  89. /yingpanguazai/ssd/ssd1/www/f.sjds.net/vendor/topthink/framework/src/think/Session.php ( 1.80 KB )
  90. /yingpanguazai/ssd/ssd1/www/f.sjds.net/vendor/topthink/framework/src/think/session/driver/File.php ( 6.27 KB )
  91. /yingpanguazai/ssd/ssd1/www/f.sjds.net/vendor/topthink/framework/src/think/contract/SessionHandlerInterface.php ( 0.87 KB )
  92. /yingpanguazai/ssd/ssd1/www/f.sjds.net/vendor/topthink/framework/src/think/session/Store.php ( 7.12 KB )
  93. /yingpanguazai/ssd/ssd1/www/f.sjds.net/vendor/topthink/framework/src/think/Route.php ( 23.73 KB )
  94. /yingpanguazai/ssd/ssd1/www/f.sjds.net/vendor/topthink/framework/src/think/route/RuleName.php ( 5.75 KB )
  95. /yingpanguazai/ssd/ssd1/www/f.sjds.net/vendor/topthink/framework/src/think/route/Domain.php ( 2.53 KB )
  96. /yingpanguazai/ssd/ssd1/www/f.sjds.net/vendor/topthink/framework/src/think/route/RuleGroup.php ( 22.43 KB )
  97. /yingpanguazai/ssd/ssd1/www/f.sjds.net/vendor/topthink/framework/src/think/route/Rule.php ( 26.95 KB )
  98. /yingpanguazai/ssd/ssd1/www/f.sjds.net/vendor/topthink/framework/src/think/route/RuleItem.php ( 9.78 KB )
  99. /yingpanguazai/ssd/ssd1/www/f.sjds.net/route/app.php ( 1.72 KB )
  100. /yingpanguazai/ssd/ssd1/www/f.sjds.net/vendor/topthink/framework/src/think/facade/Route.php ( 4.70 KB )
  101. /yingpanguazai/ssd/ssd1/www/f.sjds.net/vendor/topthink/framework/src/think/route/dispatch/Controller.php ( 4.74 KB )
  102. /yingpanguazai/ssd/ssd1/www/f.sjds.net/vendor/topthink/framework/src/think/route/Dispatch.php ( 10.44 KB )
  103. /yingpanguazai/ssd/ssd1/www/f.sjds.net/app/controller/Index.php ( 4.81 KB )
  104. /yingpanguazai/ssd/ssd1/www/f.sjds.net/app/BaseController.php ( 2.05 KB )
  105. /yingpanguazai/ssd/ssd1/www/f.sjds.net/vendor/topthink/think-orm/src/facade/Db.php ( 0.93 KB )
  106. /yingpanguazai/ssd/ssd1/www/f.sjds.net/vendor/topthink/think-orm/src/db/connector/Mysql.php ( 5.44 KB )
  107. /yingpanguazai/ssd/ssd1/www/f.sjds.net/vendor/topthink/think-orm/src/db/PDOConnection.php ( 52.47 KB )
  108. /yingpanguazai/ssd/ssd1/www/f.sjds.net/vendor/topthink/think-orm/src/db/Connection.php ( 8.39 KB )
  109. /yingpanguazai/ssd/ssd1/www/f.sjds.net/vendor/topthink/think-orm/src/db/ConnectionInterface.php ( 4.57 KB )
  110. /yingpanguazai/ssd/ssd1/www/f.sjds.net/vendor/topthink/think-orm/src/db/builder/Mysql.php ( 16.58 KB )
  111. /yingpanguazai/ssd/ssd1/www/f.sjds.net/vendor/topthink/think-orm/src/db/Builder.php ( 24.06 KB )
  112. /yingpanguazai/ssd/ssd1/www/f.sjds.net/vendor/topthink/think-orm/src/db/BaseBuilder.php ( 27.50 KB )
  113. /yingpanguazai/ssd/ssd1/www/f.sjds.net/vendor/topthink/think-orm/src/db/Query.php ( 15.71 KB )
  114. /yingpanguazai/ssd/ssd1/www/f.sjds.net/vendor/topthink/think-orm/src/db/BaseQuery.php ( 45.13 KB )
  115. /yingpanguazai/ssd/ssd1/www/f.sjds.net/vendor/topthink/think-orm/src/db/concern/TimeFieldQuery.php ( 7.43 KB )
  116. /yingpanguazai/ssd/ssd1/www/f.sjds.net/vendor/topthink/think-orm/src/db/concern/AggregateQuery.php ( 3.26 KB )
  117. /yingpanguazai/ssd/ssd1/www/f.sjds.net/vendor/topthink/think-orm/src/db/concern/ModelRelationQuery.php ( 20.07 KB )
  118. /yingpanguazai/ssd/ssd1/www/f.sjds.net/vendor/topthink/think-orm/src/db/concern/ParamsBind.php ( 3.66 KB )
  119. /yingpanguazai/ssd/ssd1/www/f.sjds.net/vendor/topthink/think-orm/src/db/concern/ResultOperation.php ( 7.01 KB )
  120. /yingpanguazai/ssd/ssd1/www/f.sjds.net/vendor/topthink/think-orm/src/db/concern/WhereQuery.php ( 19.37 KB )
  121. /yingpanguazai/ssd/ssd1/www/f.sjds.net/vendor/topthink/think-orm/src/db/concern/JoinAndViewQuery.php ( 7.11 KB )
  122. /yingpanguazai/ssd/ssd1/www/f.sjds.net/vendor/topthink/think-orm/src/db/concern/TableFieldInfo.php ( 2.63 KB )
  123. /yingpanguazai/ssd/ssd1/www/f.sjds.net/vendor/topthink/think-orm/src/db/concern/Transaction.php ( 2.77 KB )
  124. /yingpanguazai/ssd/ssd1/www/f.sjds.net/vendor/topthink/framework/src/think/log/driver/File.php ( 5.96 KB )
  125. /yingpanguazai/ssd/ssd1/www/f.sjds.net/vendor/topthink/framework/src/think/contract/LogHandlerInterface.php ( 0.86 KB )
  126. /yingpanguazai/ssd/ssd1/www/f.sjds.net/vendor/topthink/framework/src/think/log/Channel.php ( 3.89 KB )
  127. /yingpanguazai/ssd/ssd1/www/f.sjds.net/vendor/topthink/framework/src/think/event/LogRecord.php ( 1.02 KB )
  128. /yingpanguazai/ssd/ssd1/www/f.sjds.net/vendor/topthink/think-helper/src/Collection.php ( 16.47 KB )
  129. /yingpanguazai/ssd/ssd1/www/f.sjds.net/vendor/topthink/framework/src/think/facade/View.php ( 1.70 KB )
  130. /yingpanguazai/ssd/ssd1/www/f.sjds.net/vendor/topthink/framework/src/think/View.php ( 4.39 KB )
  131. /yingpanguazai/ssd/ssd1/www/f.sjds.net/vendor/topthink/framework/src/think/Response.php ( 8.81 KB )
  132. /yingpanguazai/ssd/ssd1/www/f.sjds.net/vendor/topthink/framework/src/think/response/View.php ( 3.29 KB )
  133. /yingpanguazai/ssd/ssd1/www/f.sjds.net/vendor/topthink/framework/src/think/Cookie.php ( 6.06 KB )
  134. /yingpanguazai/ssd/ssd1/www/f.sjds.net/vendor/topthink/think-view/src/Think.php ( 8.38 KB )
  135. /yingpanguazai/ssd/ssd1/www/f.sjds.net/vendor/topthink/framework/src/think/contract/TemplateHandlerInterface.php ( 1.60 KB )
  136. /yingpanguazai/ssd/ssd1/www/f.sjds.net/vendor/topthink/think-template/src/Template.php ( 46.61 KB )
  137. /yingpanguazai/ssd/ssd1/www/f.sjds.net/vendor/topthink/think-template/src/template/driver/File.php ( 2.41 KB )
  138. /yingpanguazai/ssd/ssd1/www/f.sjds.net/vendor/topthink/think-template/src/template/contract/DriverInterface.php ( 0.86 KB )
  139. /yingpanguazai/ssd/ssd1/www/f.sjds.net/runtime/temp/515214ef16c88a93e5374c9e895e8d02.php ( 12.06 KB )
  140. /yingpanguazai/ssd/ssd1/www/f.sjds.net/vendor/topthink/think-trace/src/Html.php ( 4.42 KB )
  1. CONNECT:[ UseTime:0.000768s ] mysql:host=127.0.0.1;port=3306;dbname=f_sjds;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.000824s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.000315s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.000256s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.000451s ]
  6. SELECT * FROM `set` [ RunTime:0.000202s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.000505s ]
  8. SELECT * FROM `article` WHERE `id` = 481087 LIMIT 1 [ RunTime:0.005670s ]
  9. UPDATE `article` SET `lasttime` = 1782601659 WHERE `id` = 481087 [ RunTime:0.015302s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 64 LIMIT 1 [ RunTime:0.000370s ]
  11. SELECT * FROM `article` WHERE `id` < 481087 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.000529s ]
  12. SELECT * FROM `article` WHERE `id` > 481087 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.002104s ]
  13. SELECT * FROM `article` WHERE `id` < 481087 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.001767s ]
  14. SELECT * FROM `article` WHERE `id` < 481087 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.003250s ]
  15. SELECT * FROM `article` WHERE `id` < 481087 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.000992s ]
0.107172s