php与java语法的区别
php与java语法的区别
个人觉得在学习语言时,可以通过比较来进行学习。由于长时间写java代码,对java的基本语法还算熟悉,现在转学php,就php中基本语法与java基本语法差异进行比较。
1. PHP是一种脚本语言,代码在服务器上执行,而结果以纯文本返回浏览器。
2. PHP能够运行在各种不同的平台中:比如windows,linux,MaxOS等。
3. PHP的脚本能够存放在文档的任何位置,且以 <?php 开头,以 ?> 结尾。
4. PHP的注释: PHP支持三种注释方式:
A. 双斜杠 例如://这是申明一个变量
B. #符号 例如:#这是申明一个变量
C. /**/ 例如:/*这是申明一个变量*/
java同样支持三种注释方式:
A.双斜杠 例如: //这是申明一个变量
B./**/ 例如: /*这是申明一个变量*/
C./***/ 例如: /**
*这是申明一个变量
*/
5. PHP中的大小写敏感问题: 在 PHP 中,所有用户定义的函数、类和关键词(例如 if、else、echo 等等)都对大小写不敏感,而变量则是大小写敏感的。
而在java中,所有函数名,关键字,类,变量等都是大小写敏感的。
6. PHP的变量申明: PHP类似于Javascript,两者都属于是弱引用类型,申明的时候不用指明其类型。 而java则是强引用类型,申明时必须指明其类型。
PHP中申明变量的方式是:$X = 7; 注意: java和PHP变量的命名规则相同。
7. PHP中变量的作用域:
A. global (全局的): 只能在函数以外进行访问
B. Local(局部的): 只能在方法体重进行访问
C.static (静态的)
java中全局变量允许在方法中进行访问。
8. global关键字: 可以在函数体内使用global关键字对全局变量进行访问。
例如:
- <span style="white-space:pre"> </span><pre name="code" class="html"><?php
- $x=5;
- $y=10;
- function myTest() {
- global $x,$y;
- $y=$x+$y;
- }
- myTest();
- echo $y; // 输出 15
- ?>
9. PHP中的echo和print的差别:
echo能够输出一个以上的字符串,速度比print稍快
print只能输出一个字符串,并返回1 (与之不同,java可以使用print输出一行语句)。
注意: PHP中print能够在双引号中输出变量,而java中双引号中不能输出变量。
例如:
- <pre name="code" class="html">$txt2="W3School.com.cn";
echo "Study PHP at $txt2";
同样的也能输出数组中的任意元素:
echo "My car is a {$cars[0]}";
echo与print在有无括号的情况下都能使用。例如:echo与echo();
10. PHP中的类: 就其实现过程与java相同,都是用了关键字class ,但其中的数据声明却不相同。
- <?php
- class Car
- {
- var $color;
- function Car($color="green") {
- $this->color = $color;
- }
- function what_color() {
- return $this->color;
- }
- }
- ?>
11. PHP中的字符串可以使用双引号或者是单引号表示。但是在java中只能使用双引号。
例如:“string" 'string'
Java语言与PHP语言因为都可以做web应用开发,所以总有入门学习这2种语言的入门者会问Java和PHP哪一个好。讨论语言的好坏是一件不太明智的事情,我认为只能去说那一种编程语言更加适合干什么,人与动物最大的区别就是人会使用工具,而用适合的工具去干适合的事就会事半功倍,相反的就会事倍功半,就像杀鸡用牛刀,大炮打蚊子,听上去用的工具很牛逼,实际上在杀鸡和打蚊子这两件事情上牛刀、大炮真的还不如菜刀和电蚊拍好使。
应用面不同:
Java虽然目前被主要用作企业级应用编程,且多采用BS(浏览器对服务器)架构,但其可以说比较全能,桌面应用,嵌入式,移动端,服务器都可以用Java语言进行编程。
PHP是专注于动态网页技术。
语言类型不同:
Java是强类型编译语言,而强类型语言最显著的特征就是变量在使用前必须进行数据类型声明和赋值,而未经声明的变量是无法进行使用的。编译型语言因为经过编译器编译所以在执行效率上出色。
PHP是弱类型解释语言,其变量不用声明数据类型,且未经赋值可以直接使用。解释语言无需进行编译,因此在执行效率上要比编译语言差。
语法运算符有不同:
PHP中有“===”符号,表示的意思是检查左右两边类型及值是否相等,而Java中没有这个符号,和其作用相同的是equals方法,此方法是Java中的所有类的顶级父类object中的方法,要使用这个方法必须在使用这个方法的子类中对其进行覆盖重写,否则其作用于“==”符号相同。
在循环语句中PHP有foreach语句专门来进行数组的遍历,而Java中没有此语句,但有增强for,其作用与foreach基本相同。
面向对象支持不同:
Java是完全面向对象的语言,在编程上要求程序员必须面向对象进行编程。
PHP虽然也支持面向对象,但并不强制要求使用面向对象进行网页构架,使得PHP在网页编程中更加自由。
输出方式不同:
Java在输出上只有2种方式,一种是System.out.print()和System.out.println()语句,将信息打印到控制台上,前者是打印不换行,后者是打印并换行。另一种是通过API获得输出流将信息输出到文件、另一台电脑、或者是网页上。
PHP输出的信息都将输出在网页上,而且有多种输出语句。如echo、vardump、print等。
都有较好的跨平台性:
Java语言虽然是编译语言,但并不将源代码编译成特定平台上的机器码,而是编译为Java字节码文件,再由特定平台上的JVM(java虚拟机)运行,虽然比直接编译为机器码执行效率有所下降,但这种方案成功的实现了跨平台性与执行效率之间的平衡,而且随着目前硬件水平的不断提高,这种差距几乎可以忽略不计。
PHP是解释语言,它的运行是靠解释引擎来解释运行,解释引擎可以跨平台使用。但因为没有经过编译,因此每执行一次就需要解释一次,所有执行效率要比Java差。
总结:
这两种语言在制作动态网页方面各有所长,PHP制作网页成本较低,多适合资讯类网站及个人动态网站的搭建。
Java因其安全性,多线程,同步机制,跨平台执行效率多适合涉及数据安全及资金流转等方面的网站搭建,因此使用Java的多是一些大中型公司的企业级开发。
php与java语法的区别的更多相关文章
- php语法同java语法的基本区别(实例项目需求,php才能熟)
php语法同java语法的基本区别(实例项目需求,php才能熟) 一.总结 看下面 二.PHP基本语法以及和Java的区别 .表示字符串相加 ->同Java中的. $作为变量的前缀,除此之外,变 ...
- JSON语法与JavaScript语法的区别
JSON是独立于语言存在的,在不同的编程语言中对这种数据类型的实现不同,例如在JavaScript中使用JavaScript对象对这种数据格式进行实现,那么在java中当然是用java对象实现. 描述 ...
- Java语法知识总结
一:java概述: 1991 年Sun公司的James Gosling等人开始开发名称为 Oak 的语言,希望用于控制嵌入在有线电视交换盒.PDA等的微处理器: 1994年将Oak语言更名为Java: ...
- Java语法糖设计
语法糖 Java语法糖系列,所以首先讲讲什么是语法糖.语法糖是一种几乎每种语言或多或少都提供过的一些方便程序员开发代码的语法,它只是编译器实现的一些小把戏罢了,编译期间以特定的字节码或者特定的方式对这 ...
- Java语法专题1: 类的构造顺序
合集目录 Java语法专题1: 类的构造顺序 问题 下面的第二个问题来源于Oracle的笔试题, 非常经典的一个问题, 我从07年开始用了十几年. 看似简单, 做对的比例不到2/10. 描述一下多级继 ...
- Java语法专题2: 类变量的初始化顺序
合集目录 Java语法专题2: 类变量的初始化顺序 问题 这也是Java面试中出镜率很高的基础概念问题 描述一下多级继承中字段初始化顺序 描述一下多级继承中类变量初始化顺序 写出运行以下代码时的控制台 ...
- Java语法
java语法: 一个java程序可以说是一系列对象的集合,而这些对象都要通过调用彼此的方法来协同工作. 对象: 对象是一个实例,例如:一只猫,它是一个对象,有状态和行为.它的状态状态有:颜色,名字,品 ...
- Java语法糖1:可变长度参数以及foreach循环原理
语法糖 接下来几篇文章要开启一个Java语法糖系列,所以首先讲讲什么是语法糖.语法糖是一种几乎每种语言或多或少都提供过的一些方便程序员开发代码的语法,它只是编译器实现的一些小把戏罢了,编译期间以特定的 ...
- C++和java多态的区别
C++和java多态的区别 分类: Java2015-06-04 21:38 2人阅读 评论(0) 收藏 举报 转载自:http://www.cnblogs.com/plmnko/archive ...
随机推荐
- reduce多种方法计算数组中某个值的出现次数
先来了解下reduce用法 arr.reduce(callback[, initialValue]) callback执行数组中每个值的函数,包含四个参数: accumulator 累计器累计回调的返 ...
- do…while语句
有些情况下,不论条件是否满足,循环过程必须至少执行一次,这时可以采用do...while语句.就像如图7.4所示登录账号一样,需要先输入密码和账户名,后进行判断:如果密码始终不正确,则循环要求用户输入 ...
- JavaScript中字符串运算符的使用
字符串运算符是用于两个字符串型数据之间的运算符,它的作用是将两个字符串连接起来.在JavaScript中,可以使用+和+=运算符对两个字符串进行连接运算.其中,+运算符用于连接两个字符串,而+=运算符 ...
- Java code List Map, HashMap, JSON parser snippet
package com.newegg.ec.solr.eventsalestoreservice.tuple; import kafka.message.MessageAndMetadata; pub ...
- MYSQL 45道练习题
学生表(Student).课程表(Course).成绩表(Score)以及教师信息表(Teacher).四个表的结构分别如表1-1的表(一)~表(四)所示,数据如表1-2的表(一)~表(四)所示.用S ...
- 利用jsonp进行Ajax跨域请求
在进行Ajax请求的时候经常会遇到跨域的问题,这个时候一般就会用到jsonp. 关于json和jsonp,网上有很多原理解释,这里就不多赘述,需要的自行搜索. 下面是一个简单的ajax跨域请求示例: ...
- MFC和OpenCV结合
最重要的一点:如何把OpenCV的框嵌入MFC的ID.. 把cv显示框嵌入 pic控件 cvNamedWindow("kalman"); HWND hWnd = (HWND) cv ...
- 用VS Code Debug Python
- react基础篇四
列表 & Keys 渲染多个组件 你可以通过使用{}在JSX内构建一个元素集合 下面,我们使用Javascript中的map()方法遍历numbers数组.对数组中的每个元素返回<li& ...
- android studio: 为现有项目添加C++支持
刚开始创建项目的时候并没有勾选“include C++ support” 选项: 后期增加步骤: 1.拷贝已有支持C++项目的CMakeLists.txt文件到现有项目的app目录下: 2.在app/ ...