php语法同java语法的基本区别(实例项目需求,php才能熟)

一、总结

看下面

二、PHP基本语法以及和Java的区别

.表示字符串相加

->同Java中的.

$作为变量的前缀,除此之外,变量名称定义规则同Java

参数传递和方法返回时传引用需要加前缀&

示例代码: 
function f(&$a){}//方法参数值以引用形式传入 
functioin & f(){}//方法返回值以引用形式返回

Java中反射调用方法对应PHP中的可变函数:var a="a";a="a";a();

PHP在定义变量时较Java强大一点,可以定义可变变量,也就是说在定义变量时,变量名本身可以用一个变量。

示例代码: 
var a=”a”;vara=”a”;var a=”usea”;//a=”usea”;// a是一个使用a是一个使用a的值作为变量名的变量,也可以使用var {{a}=”use a”;

PHP的类在使用时必须先加载,否则会报错,不同于Java只要使用到类都会导致类自动加载。加载类的代码如下:

function my_autoloader ( class ) {  
    include  ‘classes/’  .class ) {      include  ‘classes/’  .class . ‘.class.php’ ; 

spl_autoload_register ( ‘my_autoloader’ );

PHP没有多线程

PHP常量的定义不是使用final而是用defined()函数。示例:define ( “CONSTANT” , “Hello world.” );

// PHP 5.3.0 后还支持这种方式定义:const CONSTANT = ‘Hello World’ ;

PHP调用父类的构造函数不是使用super(),而是parent::__construct()。

PHP有析构函数,类似Java的finalize方法。例如:function __destruct () {print “Destroying “;}

PHP使用this表示当对象,这点同Java的this

PHP使用parent表示父类,这点同Java的super

PHP使用self表示当前类,Java没有这个关键字,也不需要使用表示类。

PHP在调用本类中的静态变量和方法时,必须使用self关键字和::,示例代码:

class A(){ 
public static function foo () {echo “foo”;} 
self :: foo (); 

如果不在本类中则直接使用类名: 
class A(){ 
public static function foo () {echo “foo”;} 

A :: foo ();

三、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'

php语法同java语法的基本区别(实例项目需求,php才能熟)的更多相关文章

  1. IT兄弟连 Java语法教程 Java语法基础 经典面试题

    1.Java语言中有几种基本类型?分别是什么?请详细说明每种类型的范围以及所占的空间大小? Java语言中有8中基本类型,分别是代表整形的byte.short.int和long,代表浮点型的float ...

  2. Java语法糖设计

    语法糖 Java语法糖系列,所以首先讲讲什么是语法糖.语法糖是一种几乎每种语言或多或少都提供过的一些方便程序员开发代码的语法,它只是编译器实现的一些小把戏罢了,编译期间以特定的字节码或者特定的方式对这 ...

  3. Java 语法清单

      Java 语法清单 Java 语法清单翻译自 egek92 的 JavaCheatSheet,从属于笔者的 Java 入门与实践系列.时间仓促,笔者只是简单翻译了些标题与内容整理,支持原作者请前往 ...

  4. Java和C++的区别

    这是一个Java语言和C++语言之间的比较. 目录 [隐藏]  1 设计目标 2 语言特性 2.1 语法 2.2 语义 2.3 资源管理 2.4 库 2.5 运行时 2.6 模板 vs. 泛型 2.7 ...

  5. php与java语法的区别

    php与java语法的区别 个人觉得在学习语言时,可以通过比较来进行学习.由于长时间写java代码,对java的基本语法还算熟悉,现在转学php,就php中基本语法与java基本语法差异进行比较. 1 ...

  6. Java语法知识总结

    一:java概述: 1991 年Sun公司的James Gosling等人开始开发名称为 Oak 的语言,希望用于控制嵌入在有线电视交换盒.PDA等的微处理器: 1994年将Oak语言更名为Java: ...

  7. 037 01 Android 零基础入门 01 Java基础语法 04 Java流程控制之选择结构 04 switch结构

    037 01 Android 零基础入门 01 Java基础语法 04 Java流程控制之选择结构 04 switch结构 本文知识点:Java中的switch结构 选择结构分类 选择结构只有如下2种 ...

  8. 023 01 Android 零基础入门 01 Java基础语法 03 Java运算符 03 算术运算符之——自增自减运算符

    023 01 Android 零基础入门 01 Java基础语法 03 Java运算符 03 算术运算符之--自增自减运算符 本文知识点:Java算术运算符中的自增自减运算符 自增自减运算符 之前我们 ...

  9. 006 01 Android 零基础入门 01 Java基础语法 01 Java初识 06 使用Eclipse开发Java程序

    006 01 Android 零基础入门 01 Java基础语法 01 Java初识 06 使用Eclipse开发Java程序 Eclipse下创建程序 创建程序分为以下几个步骤: 1.首先是创建一个 ...

随机推荐

  1. Exercise : Self-Taught Learning

    First, you will train your sparse autoencoder on an "unlabeled" training dataset of handwr ...

  2. 博弈论 SG函数(模板) HDU 1848 Fibonacci again and again

    Fibonacci again and again Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Jav ...

  3. ubuntu 进入临时客户会话页面 转入用户自己页面

    1.点击右上角的按钮 2.选择要登录的客户名字 点击进入 3.输入账号密码 进入指定的账号

  4. Gym - 100548C The Problem Needs 3D Arrays

    Problem C.   The Problem Needs 3D Arrays Time Limit: 6000MS Memory Limit: 262144KB 64bit IO Format: ...

  5. 4.dubbo-demo+简易监控中心安装+管理控制台安装

    转自:https://blog.csdn.net/zhangweigangweiwu/article/details/52244099 tomcat:apache-tomcat-6.0.39 需要用到 ...

  6. 1.22 Python基础知识 - 正则表达式

    Python正则表达式 正则表达式是一个特殊的字符序列,它能帮助你方便的检查一个字符串是否与某种模式匹配. Python 自1.5版本起增加了re 模块,它提供 Perl 风格的正则表达式模式. re ...

  7. 如何修复和检测Windows系统漏洞

    本文为<如何给系统打补丁(知识篇)>一文实战文章.   本文出自 "李晨光原创技术博客" 博客,谢绝转载!

  8. 在 Swift 專案中使用 Javascript:編寫一個將 Markdown 轉為 HTML 的編輯器

    原文:Using JavaScript in Swift Projects: Building a Markdown to HTML Editor 作者:GABRIEL THEODOROPOULOS ...

  9. 【Oracle错误集锦】:PLSQL无法直连64位Oracle11g数据库

    背景:Oracle数据库装在本机上,使用PLSQL连接. 今天安装完Oracle 11g数据库后.用plsql连接数据库死活都连接不上.而且plsql客户端登录窗体的Database下拉框还为空.见下 ...

  10. Android学习笔记之Bitmap位图虽触摸点移动

    package xiaosi.bitmap; import android.app.Activity; import android.os.Bundle; public class mianActiv ...