PHP包含和Java导入声明之间的区别

PHP包含和Java导入声明之间的区别,java,php,import,Java,Php,Import,在PHP中,我们有: <?php include 'external_file.php'; ?> 据我所知,PHP include只是将外部文件的内容转储到包含include语句的文件中 我的直觉是Java处理这些包含/导入的方式与PHP不同。关键区别是什么 PHP只包含该文件中的任何内容。它只是将两个文件合并在一起 Java的导入函数允许您访问该导入中指定的方法。基本上,PHP只是这两个文件的基本组合,而Java允许您访问该文件的方法和接口。PHP的include与在includ

在PHP中,我们有:

<?php include 'external_file.php'; ?>
据我所知,PHP include只是将外部文件的内容转储到包含include语句的文件中


我的直觉是Java处理这些包含/导入的方式与PHP不同。关键区别是什么

PHP只包含该文件中的任何内容。它只是将两个文件合并在一起


Java的导入函数允许您访问该导入中指定的方法。基本上,PHP只是这两个文件的基本组合,而Java允许您访问该文件的方法和接口。

PHP的include与在include()指令所在的位置剪切/粘贴包含文件的原始内容几乎完全相同


Java是经过编译的,因此没有“包含”源代码——JVM只是加载对象/类定义并使其可用。这与C中的include指令非常相似。您没有加载文字源代码,只是加载函数定义/原型/指纹供以后使用。

它们非常不同。Php只包含包含文件中的源代码。
Java使用类加载器加载位于类路径某处的已编译类。导入只是告诉编译器您希望引用当前命名空间中的那些类。导入本身不加载任何内容,只有在使用
new
时,JVM才会加载该类。

在php中,它只是将文件的内容转储到当前文件中。 在Java中,使用导入的类:

  • 用于使用导入的类将源代码编译为字节码
  • 在运行时,当JVM看到您的程序引用导入的类时,它会加载并使用它(如果是这种情况,则用于方法调用和成员访问)
  • Java中的
    与PHP include类似。
    Java导入类似于PHP加载模块。

    Java中最接近PHP包含的是静态导入。例如:
    导入静态javax.servlet.http.HttpServlet
    。这允许您在同一类文件中引用方法,就像它们在本地声明一样(这只适用于导入类的静态成员。但是,很少使用。这是一种更紧密的耦合形式,在大多数情况下都应该避免。我发现它唯一有用的地方是Junit测试用例。静态导入org.Junit.Assert允许您使用较短形式的assertEquals(…)与Assert.assertEquals(…)不同,请查看Oracle关于静态导入的文档。

    根据我的经验,PHP允许您做任何事情。您可以像Java使用其导入一样对待PHP包含。PHP文件可以是所有函数,也可以从头到尾执行

    因此,您的php文件可能是

    <?php
    
    echo(1 + 4)
    
    ?>
    
    
    
    或者它可以包含您稍后调用的函数

    <?php
    
    function addTwoNumbers()
    {
    return 1 + 4;
    }
    ?>
    
    
    

    如果包含第二个php文件,可以调用include语句下面的addTwoNumber函数。我喜欢练习指定单个函数,而不是创建许多php文件。

    #include
    是C proprocesor的一部分,而不是compiler.true,但是头文件通常不包含完整的函数定义。但是can和它们都是由预处理器提供的。@MarcB因此,就PHP而言,包含的文件越长,从技术上讲加载页面所需的时间就越长,这是真的吗?而在Java中,导入的类的长度实际上对执行速度没有影响?我仍然很好奇使用Java.util.*;vs Java.util的效果如何。如果您只需要扫描器,则扫描器的执行速度很快。在php中包含代码意味着通过完整的解析器/编译器运行该代码。而java类库将有一个用于快速/快速加载/解析的索引。随着包含文件的大小的增加,两者都需要更长的时间才能工作,但java的增长速度将比当然,文件的大小并不意味着太多。一个非常大的java函数仍然只意味着加载一个函数的定义数据
    <?php
    
    function addTwoNumbers()
    {
    return 1 + 4;
    }
    ?>