java与php的区别,超长预警(可能要写很久,根据自己使用的情况来写,会不断补充)

  java, php
222 views

原先写php多一些,后面怎么说呢,php写东西是快,但是微服务和分布式这块真的没有java的生态牛,甩了php有100条街估计-_-。本文主要是写他们在web方向上的区别。

大概分语法,框架和生态,社会环境四方面来说


一. 语言层面

1.编程理念(至少是语言刚开始的时候

  • php是一个能用面向过程和面向对象编程的语言,你可以像写c语言一样按顺序写程序按入口文件里的程序顺序执行,也可以编写类,用面向对象的方式写程序。比如一个简单的输出字符串程序:
    index.php
<?php
    echo "hello,world!";
?>
  • 但是java语言设计的时候就是为了用面向对象的编程方式,在程序的入口方面就能体现,输出同样的字符,java必须要定义一个类,java虚拟机会执行入口类中的main方法:
public class HelloWorld {
    public static void main(String[] args) {
        System.out.println("Hello World");
    }
}

2.语法和接口(语言自身的设计)

  • php是弱类型的编程语言,定义变量时不需要指定变量的类型:
<?php
    var a = 10;                     //定义一个值为10的变量,运行环境会自动判断a的类型
    a = "我又变成字符串类型了^_^";    //而且变量的类型可以随时更改,变量的类型是运行时确定,可以随时更改为另一种,只要赋值的类型变就行。
?>
  • java是强类型的,定义的变量类型不能随意切换
public class Test{ 
    public static void main(String[] args){
        int a = 10;      //变量需要在声明的时候指定类型,后续也不能随意切换类型
        a = "我是字符串"; //错误: 不兼容的类型: String无法转换为int
   }
}



  • php的接口是函数式的,比如向一个数组尾部插入数据:
<?php
    $a = array("a","b");    //定义一个a数组初始值为[a,b]
    array_push($a,"c","d"); //添加c,d字符进去
?>
  • java中的接口是对象式的
import java.util.ArrayList;

    public class Test {
        public static void main(String[] args) {
            ArrayList<String> str = new ArrayList<String>();
            str.add("a");
            str.add("b");
            str.add("c");
            str.add("d");
        }
}

3. web运行环境(容器)

  • php的web应用由web服务器运行,如apache,nginx。每次一个请求结束就会销毁变量。

LEAVE A COMMENT