一、变量和常量

1.1、变量名(标示符)

1)变量:$开头标志

2)变量名:能够由字母。数字,_ 3者组成,不能用数字开头

3)标识符是区分大写和小写的。但函数名不区分大写和小写。

4)变量名称能够与函数名称同样,尽管是同意的。但应尽量避免混淆。

PHP不要求在使用变量之前声明变量,当第一次给一个变量赋值时。才创建了这个变量。

比如:

$3age;//错
$_ = 6;//能够
$*p = 30;//错

1.2、数据类型

1) Integer: 用来表示整数。

2) Float: 用来表示全部实数。

3) String: 用来表示字符串。

4) Boolean: 用来表示true或false。

5) Array: 用来保存具有同样类型的多个数据项。

6) Object: 用来保存类的实例。

PHP能够在不论什么时间依据保存在变量中的值来确定变量的类型,当须要强制类型转换时能够依照java的语法来转换

比如:

$icount = 0;
$fcount = (float)$icount;

1.3、常量的定义

常量能够保存一个值,可是程序一旦初始化之后,常量的值就不能改变。

define('PI', 3.14159);
echo PI;

常量一般用大写表示,用define函数定义,而且不用$符号标识。

  • 常量前面没有美元符号($);
  • 常量仅仅能用 define() 函数定义。而不能通过赋值语句;
  • 常量能够不用理会变量的作用域而在不论什么地方定义和訪问;
  • 常量一旦定义就不能被又一次定义或者取消定义;
  • 常量的值仅仅能是标量。

1.4、变量作用域

作用域指在一个脚本中某个变量能够使用或可见的范围。PHP具有6项主要的作用域规则。

1) 内置超级全局变量能够在脚本中的不论什么地方使用。

比如:

$GLOBALS: 全部全局变量数组。

$_SERVER: server环境变量数组

$_GET: GET方法传递给该脚本的变量数组

$_POST: POST方法传递给该脚本的变量数组

$_COOKIE: cookie变量数组

$_FILES: 与文件上传相关的变量数组

$_ENV: 环境变量数组

$_REQUEST: 全部用户输入的变量数据,包含$_GET、$_POST和$_COOKIE

$_SESSION: 会话变量数组

2) 常量一旦被声明。能够在全局可见。

3) 在脚本中声明的全局变量在全脚本中是可见的。

4) 函数内部使用的变量声明为全局变量时,名称要与全局变量名称一致。

5) 函数内部创建并声明为静态的变量在函数外不可见,但在函数的多次运行过程中保持该值。

6) 函数内部创建的变量是本地的,当函数终止时,该变量也就不存在。

二、运算符或操作符

2.1、算数运算符

算术操作符也就是数字操作符。通经常使用于整型或双精度类型的数据。假设应用在字符串中。PHP会试图将这些字符转换成一个数字,假设当中包括"e"或"E",它会被当作是科学表示法并被转换成浮点数,否则将会被转换成整数。PHP会在字符串開始处寻找数字。而且使用这些数字作为该字符串的值。假设没有找到数字,则该字符串的值为0。

操作符

名称

演示样例

+

加

$a + $b

-

减

$a - $b

*

乘

$a * $b

/

除

$a / $b

%

模

$a % $b


2.2、字符串连接

利用“.”

$string = "hello"." world";

2.3、赋值运算

复合赋值操作符

操作符

用法

等价于

+=

$a += $b

$a = $a + $b

-=

$a -= $b

$a = $a - $b

*=

$a *= $b

$a = $a * $b

/=

$a /= $b

$a = $a / $b

%=

$a %= $b

$a = $a % $b

.=

$a .= $b

$a = $a . $b

2.4、引用

引用操作符"&"能够在关联赋值中使用。引用相当于一个别名,而不是一个指针,它使两个变量指向同样的内存地址,能够使用unset来重置

比如:

$a = 1;
$b = &$a;
$b = 2;
unset($a);

2.5、比較运算

比較操作符

操作符

名称

用法

==

等于

$a == $b

===

恒等

$a === $b

!=

不等

$a != $b

!==

不恒等

$a !== $b

<>

不等

$a <> $b

<

小于

$a < $b

>

大于

$a > $b

<=

小于等于

$a <= $b

>=

大于等于

$a >= $b

2.6、逻辑运算

逻辑操作符

操作符

名称

用法

!

非

!$b

&&

与

$a && $b

||

或

$a || $b

and

与

$a and $b

or

或

$a or $b

xor

异或

$a xor $b

2.7、位运算

位操作符

操作符

名称

用法

&

按位与

$a & $b

|

按位或

$a | $b

~

按位非

~$a

^

按位异或

$a ^ $b

<<

左位移

$a << $b

>>

右位移

$a >> $b

2.8、其它

1) 逗号操作符

逗号操作符","用来分隔函数參数和其它列表项,这个操作符常常被附带使用。

2) 类操作符

"new"和"->"分别用来初始化类的实例和訪问类的成员。

3) 三元操作符

三元操作符"? :"类似于条件语句if-else的表达式版本号,语法格式例如以下:

condition ?

value if true : value if false

4) 错误抑制符

错误抑制符"@"能够在不论什么表达式前使用,使用这个操作符。能够抑制代码产生的警告。

5) 运行操作符

运行操作符是一对操作符,它是一对反向单引號"` `",PHP将试着将反向单引號之间的命令当作server端的命令行来运行,表达式的值就是命令的运行结果,比如:

echo `ls -l`;

6) 类型操作符

"instanceof"操作符同意检查一个对象是否是特定类的实例,比如:

if ($object instanceof sampleClass)
echo "Object is an instance of sampleClass";

2.9、操作符优先级以及结合性

由低到高例如以下:

操作符优先级

结合性

操作符

左

,

左

or

左

xor

左

and

右

print

左

= += -= *= /= .= %= &= != ^= ~= <<= >>=

左

? :

左

||

左

&&

左

!

左

^

左

&

不相关

== != === !==

不相关

< <= > >=

左

<< >>

左

+ - .

左

* / %

右

! ~ ++ -- (type) @

右

[ ]

不相关

new

不相关

()

三、測试函数与測试变量

3.1、PHP提供了特定类型的測试函数。

比如:

1) is_array(): 检查变量是否是数组。

2) is_double()、is_float()、is_real(): 检查变量是否是浮点数,全部函数同样。

3) is_long()、is_int()、is_integer(): 检查变量是否是整数。全部函数同样。

4) is_string(): 检查变量是否是字符串。

5) is_bool(): 检查变量是否是布尔值。

6) is_object(): 检查变量是否是一个对象。

7) is_resource(): 检查变量是否是一个资源。

8) is_null(): 检查变量是否为null。

9) is_scalar(): 检查变量是否是标量,即整数、布尔值、字符串或浮点数。

10) is_numeric(): 检查变量是否是数字或数字字符串。

11) is_callable(): 检查变量是否是有效的函数名称。

3.2、測试变量状态

PHP有几个函数用来測试变量状态。

比如:

1) isset()

bool isset(mixed var[, mixed var[, ...]])

issset()须要一个变量作为參数。假设这个变量存在。则返回true,否则返回false。也能够传递一个由逗号间隔的变量列表,假设全部变量都被设置了,即返回true。

还能够使用与isset()相相应的unset()来销毁一个变量:

void unset(mixed var[, mixed var[, ...]])

2) empty()

bool empty(mixed var)

empty()能够用来检查一个变量是否存在,以及它的值是否为非空和非0,对应的返回值为true或false。

四、控制语句

4.1、if else

if (condition) {
expression;
}
elseif (condition) {
expression;
}
else {
expression;
}

4.2、switch

switch (expression) {
case value1:
expression;
break;
case value2:
expression;
break;
defalut:
expression;
break;
}

switch语句工作方式类似于if语句。可是它同意条件能够有多于两个的可能值。在switch语句中,仅仅要条件是一个简单的数据类型,能够提供一个case语句来处理每个条件值,而且提供对应的动作代码,此外另一个默认的case条件来处理没有提供特定值的情况。

当switch语句中的特定case被匹配时。PHP将运行该case下的代码,直至遇到break语句,假设没有break语句。switch将运行这个case下面全部值为true的case中的代码。

4.3、while

while (condition) {
expression;
}

4.4、for

for (expression1; condition; expression2) {
expression3;
}

expression1在開始时仅仅运行一次。通常在这里设置计数器的初始值。

在每一次循环開始之前,condtion表达式将被測试,假设表达式的值为false,循环将结束。

expression2在每一次循环结束时运行。通常在这里调整计数器的值。expression3在每一次循环中运行一次。

4.5、do while

do {
expression;
}
while (condition);

4.6、跳出控制结构

假设希望停止一段代码的运行,能够有3种方法。

1) 假设希望终止一个循环。能够使用break语句。脚本会从循环体后面的第一条语句開始运行。

2) 假设希望跳到下一次循环,能够使用continue语句。

3) 假设希望结束整个PHP脚本的运行,能够使用exit语句。

phalcon—— PHP基础知识(一)的更多相关文章

  1. .NET面试题系列[1] - .NET框架基础知识(1)

    很明显,CLS是CTS的一个子集,而且是最小的子集. - 张子阳 .NET框架基础知识(1) 参考资料: http://www.tracefact.net/CLR-and-Framework/DotN ...

  2. RabbitMQ基础知识

    RabbitMQ基础知识 一.背景 RabbitMQ是一个由erlang开发的AMQP(Advanced Message Queue )的开源实现.AMQP 的出现其实也是应了广大人民群众的需求,虽然 ...

  3. Java基础知识(壹)

    写在前面的话 这篇博客,是很早之前自己的学习Java基础知识的,所记录的内容,仅仅是当时学习的一个总结随笔.现在分享出来,希望能帮助大家,如有不足的,希望大家支出. 后续会继续分享基础知识手记.希望能 ...

  4. selenium自动化基础知识

    什么是自动化测试? 自动化测试分为:功能自动化和性能自动化 功能自动化即使用计算机通过编码的方式来替代手工测试,完成一些重复性比较高的测试,解放测试人员的测试压力.同时,如果系统有不份模块更改后,只要 ...

  5. [SQL] SQL 基础知识梳理(一)- 数据库与 SQL

    SQL 基础知识梳理(一)- 数据库与 SQL [博主]反骨仔 [原文地址]http://www.cnblogs.com/liqingwen/p/5902856.html 目录 What's 数据库 ...

  6. [SQL] SQL 基础知识梳理(二) - 查询基础

    SQL 基础知识梳理(二) - 查询基础 [博主]反骨仔 [原文]http://www.cnblogs.com/liqingwen/p/5904824.html 序 这是<SQL 基础知识梳理( ...

  7. [SQL] SQL 基础知识梳理(三) - 聚合和排序

    SQL 基础知识梳理(三) - 聚合和排序 [博主]反骨仔 [原文]http://www.cnblogs.com/liqingwen/p/5926689.html 序 这是<SQL 基础知识梳理 ...

  8. [SQL] SQL 基础知识梳理(四) - 数据更新

    SQL 基础知识梳理(四) - 数据更新 [博主]反骨仔 [原文]http://www.cnblogs.com/liqingwen/p/5929786.html 序 这是<SQL 基础知识梳理( ...

  9. [SQL] SQL 基础知识梳理(五) - 复杂查询

    SQL 基础知识梳理(五) - 复杂查询 [博主]反骨仔 [原文]http://www.cnblogs.com/liqingwen/p/5939796.html 序 这是<SQL 基础知识梳理( ...

随机推荐

  1. Android 开发手记二 C可执行程序编译实例(转帖)

    http://www.cnblogs.com/gaozehua/archive/2011/09/02/2164077.html

  2. iOS直播-播放基于RTMP协议的视频

    iOS直播-播放基于RTMP协议的视频 流媒体协议介绍 1. 伪流媒体: 渐进式下载 : 边下边存, 文件会保存 使用http协议,也能够实现视频播放, 也能快进快退等, 体验上跟流媒体很像. 优酷, ...

  3. 1.2 Activity

    Activity是个应用组件,它给用户提供了为了完成某些工作而可以进行交互操作的界面,例如,电话详情,打电 话,发邮件,或是浏览地图.每一个Activity都有一个窗口来绘制自已的用户界面.通常来说, ...

  4. How to add total page to Odoo Report(7.0 version)

    add this codes to your rml file: <drawRightString x="19.5cm" y="0.3cm">Pag ...

  5. JVM Specification 9th Edition (3) Chapter 2. The Structure of the Java Virtual Machine

    Chapter 2. The Structure of the Java Virtual Machine 内容列表 2.1. The class File Format (class文件的格式) 2. ...

  6. hihoCoder #1291 : Building in Sandbox 逆向处理+并查集维护

    /** 题目:#1291 : Building in Sandbox 链接:https://hihocoder.com/problemset/problem/1291 题意:就是一个三维的空间里,按照 ...

  7. spring 的redis操作类RedisTemplate

    spring 集成的redis操作几乎都在RedisTemplate内了. 已spring boot为例, 再properties属性文件内配置好 redis的参数 spring.redis.host ...

  8. shiro添加注解@RequiresPermissions无效

    在学习和使用shiro中,需要整合shiro框架,然后可以在spring中中使用有三种方法,我用的是注解开发这种方式,但是,我加入注解后发现,没什么作用,然后想着肯定是没有注解成功,然后查找资料,发现 ...

  9. MYSQL数据库连接

    <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding= ...

  10. vmware 虚拟机下 ubuntu 与主机共享锐捷

    一直以来.想要学习 linux ,在 vm 虚拟机下安装了 ubuntu 系统. 可是这个系统并不能上网.原因就是 vm 虚拟机的虚拟网卡会和锐捷冲突.锐捷会检測到多网卡,断开网络,所以不得不禁用 v ...