课程咨询 :025-86971863

南京PHP培训 > 雇主企业 > 企业笔试题 > PHP基础之简单数据结构
  • PHP基础之简单数据结构

    发布:南京PHP培训      来源:企业笔试题    

  • 通常人们不喜欢处理复杂 数据结构。因此在自然语言中,我们有很多方法来消除复杂性。很多其中的方法都归结 到“主题化”这个范畴,主题化是一个语言学概念,指在谈论某方面事情时,谈论双方 保持一致。主题化可以在语言的各个级别出现,在较高的级别中,我们可以根据不同的 感兴趣的子话题将自己分成不同的文化类型,同时建立一些专有语言来讨论这些特定的 话题。就象在医生办公室中的语言(“不可溶解窒息物”)和在巧克力厂中的语言( “永久块止动器”)肯定是有差异的一样。所幸,我们能够在语言环境发生转换时能够 自动适应新的语言环境。

    在对话级别中,环境转换必须更加明确,因此语言让我们能用很多的方式来表达同一个 意思。我们在书和章节的开头加上题目。在我们的句子中,我们会用“根据你最近的 查询”或“对于所有的 X”来表示后面的讨论主题。

    Perl 也有一些主题化的方法,最主要的就是使用 package 声明。例如你想在 Perl中 讨论 Camels,你会在 Camel 模块中以下面的方法开头:

    package Camel;

    这个开头有几个值得注意的效果,其中之一就是从这里开始,Perl 认为所有没有特别 指出的动词和名词都是关于 Camels 的,Perl 通过在全局名字前添加模块名字 “Camel::”来实现,因此当你使用下面的方法:

    package Camel;这里,$fido 的真实名字是 $Camel::fido(&fetch 的真实名字是 &Camel::fetch)。 这就意味着如果别人在其他模块中使用:package Dog; $fido = &fetch();

    Perl 不会被迷惑,因为这里 $fido 的真实名字是 $Dog::fido,而不是 $Camel::fido。计算机科学家称之为一个 package 建立了一个名字空间。你可以建立 很多的名字空间,但是在同一时间你只能在一个名字空间中,这样你就可以假装其他 名字空间不存在。这就是名字空间如何为你简化实际工作的方法。简化是基于假设的 (当然,这是否会过于简化,这正是我们写这一章的原因)

    保持动词的简洁和上面讨论保持名词的简洁同样重要。在 Camel 和 Dog 名字空间中, &Camel::fetch 不会与 &Dog::fetch 混淆,但包的真正好处在于它们能够将你的动词 分类,这样你就可以在其他包中使用它们。当我们使用:

    $fido = new Camel "Amelia";我们实际上调用了 Camel 包中的 &new,它的全名是 &Camel::new。并且当我们使用:$fido->saddle();的时候,我们调用了 &Camel::saddle 过程,因为 $fido 记得它是指向一个 Camel 对象的。这就是一个面向对象程序的工作方法。

    当你说 package Camel 的时候,你实际上是开始了一个新包。但是有时候你只是想 借用其他已有包的名词和动词。Perl 中你可以用 use 声明来实现,use 声明不仅可以 让你使用其他包的动词,同时也检查磁盘上载入的模块名称。实际上,你必须先使用:

    use Camel;然后才能使用:$fido = new Camel "Amelia";

    不然的话,Perl 将不知道 Camel 是什么东西。

    有趣的是,你自己并不需要真正知道 Camel 是什么,你可以让另外一个人去写 Camel 模块。当然最好是已经有人为你编写了 Camel 模块。可能 Perl 最强大的东西并不在 Perl 本身,而在于 CPAN(Comprehensive Perl Archive Network),CPAN 包含无数 的用于实现不同任务模块。你不需要知道如何实现这些任务,只需要下载这些模块,并 简单用下面的方法来使用它们:

    use Some::Cool::Module;然后你就可以使用模块中的动词。

    因此,象自然语言中的主题化一样,Perl 中的主题化能够”歪曲”使用处到程序结束 中的 Perl 语言。实际上,一些内部模块并没有动词,只是简单地以不同的有用方法来 封装 Perl 语言。我们称这些模块为用法。比如,你经常看到很多人使用 strict:

    use strict;strict 模块干的事是更加严格地约束 Perl 中的一些规则,这样你在很多方面必须更 明确,而不是让 Perl 去猜,例如如何确定变量的作用范围。使事情更加明确有助于 使大工程更容易操作。缺省的 Perl 是为小程序优化的,有了strict,Perl 对于那些 需要更多维护的大型工程也是相当好的。由于你可以在任何时候加入 strict 用法, 所以你可以容易地将小型工程发展成大型工程。

    南京php培训:nj.php.tedu.cn

    推荐文章

上一篇:PHP技术之复杂数据结构

下一篇:PHP学习基础之动词

最新开班日期  |  更多

PHP高级开发工程师就业班

PHP高级开发工程师就业班

开班日期:04-28

PHP高级开发工程师精品班

PHP高级开发工程师精品班

开班日期:04-28

PHP高级开发工程师周末班

PHP高级开发工程师周末班

开班日期:04-28

PHP高级开发工程师定制班

PHP高级开发工程师定制班

开班日期:04-28

  • 地址:南京市秦淮区太平南路333号金陵御景园8楼达内
  • 课程培训电话:025-86971863     全国服务监督电话:400-111-8989
  • 服务邮箱 tousu@tedu.cn
  • 2002-2018 达内时代科技集团有限公司 版权所有 京ICP证8000853号-56