phalcon—— PHP基础知识(一)
一、变量和常量
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 |
|
右 |
|
|
左 |
= += -= *= /= .= %= &= != ^= ~= <<= >>= |
|
左 |
? : |
|
左 |
|| |
|
左 |
&& |
|
左 |
! |
|
左 |
^ |
|
左 |
& |
|
不相关 |
== != === !== |
|
不相关 |
< <= > >= |
|
左 |
<< >> |
|
左 |
+ - . |
|
左 |
* / % |
|
右 |
! ~ ++ -- (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基础知识(一)的更多相关文章
- .NET面试题系列[1] - .NET框架基础知识(1)
很明显,CLS是CTS的一个子集,而且是最小的子集. - 张子阳 .NET框架基础知识(1) 参考资料: http://www.tracefact.net/CLR-and-Framework/DotN ...
- RabbitMQ基础知识
RabbitMQ基础知识 一.背景 RabbitMQ是一个由erlang开发的AMQP(Advanced Message Queue )的开源实现.AMQP 的出现其实也是应了广大人民群众的需求,虽然 ...
- Java基础知识(壹)
写在前面的话 这篇博客,是很早之前自己的学习Java基础知识的,所记录的内容,仅仅是当时学习的一个总结随笔.现在分享出来,希望能帮助大家,如有不足的,希望大家支出. 后续会继续分享基础知识手记.希望能 ...
- selenium自动化基础知识
什么是自动化测试? 自动化测试分为:功能自动化和性能自动化 功能自动化即使用计算机通过编码的方式来替代手工测试,完成一些重复性比较高的测试,解放测试人员的测试压力.同时,如果系统有不份模块更改后,只要 ...
- [SQL] SQL 基础知识梳理(一)- 数据库与 SQL
SQL 基础知识梳理(一)- 数据库与 SQL [博主]反骨仔 [原文地址]http://www.cnblogs.com/liqingwen/p/5902856.html 目录 What's 数据库 ...
- [SQL] SQL 基础知识梳理(二) - 查询基础
SQL 基础知识梳理(二) - 查询基础 [博主]反骨仔 [原文]http://www.cnblogs.com/liqingwen/p/5904824.html 序 这是<SQL 基础知识梳理( ...
- [SQL] SQL 基础知识梳理(三) - 聚合和排序
SQL 基础知识梳理(三) - 聚合和排序 [博主]反骨仔 [原文]http://www.cnblogs.com/liqingwen/p/5926689.html 序 这是<SQL 基础知识梳理 ...
- [SQL] SQL 基础知识梳理(四) - 数据更新
SQL 基础知识梳理(四) - 数据更新 [博主]反骨仔 [原文]http://www.cnblogs.com/liqingwen/p/5929786.html 序 这是<SQL 基础知识梳理( ...
- [SQL] SQL 基础知识梳理(五) - 复杂查询
SQL 基础知识梳理(五) - 复杂查询 [博主]反骨仔 [原文]http://www.cnblogs.com/liqingwen/p/5939796.html 序 这是<SQL 基础知识梳理( ...
随机推荐
- iOS图片上传及压缩
提到从摄像头/相册获取图片是面向终端用户的,由用户去浏览并选择图片为程序使用.在这里,我们需要过UIImagePickerController类来和用户交互. 使用UIImagePickerContr ...
- Window 窗口类
窗口类 WNDCLASS 总结 总结为下面的几个问题: . 什么是窗口类 . 窗口类的三种类型 . 窗口类各字段含义 . 窗口类的注册和注销 . 如何使用窗口类,子类化.超类化是什么 下面分别描述: ...
- eclipse导入svn中的maven工程项目
Eclipse导入现有的maven工程 第一步:右键如图 new->other 进入other->输入svn->从svn检索项目,如图 点击next>如下图,如是第一次则选择创 ...
- 通过ip查看主机名和端口占用情况
1. 知道对方ip查看对方的计算机名 方法:开始->运行->cmd->net view 对方ip 或者 开始->运行->cmd->nbtstat -a 对方ip ...
- 如何使用UltraISO将制作的ios文件挂载到虚拟机上面
选中要挂载的文件例如图中蓝色的部分移动到上面,然后点击文件中的保存按钮就可以了. 接下来设置虚拟机上的red hat6.3 记住一定要把红色部分选中,才能在虚拟机上看到 然后点击光盘就可以看到挂载的内 ...
- 利用FFmpeg切割视频
关键词:FFmpeg,seek,ss,t,to,搜索,定位 介绍 如果你想要从输入文件中切割一部分,需要用到ss选项. 快速定位 需要将ss放在输入文件的前面(即-i的前面) elesos1.jpg ...
- Cmake实现样例
多目录工程的CmakeLists.txt编写(自动添加多目录下的文件) http://www.cnblogs.com/chengxuyuancc/p/5347646.html 实现类似于vs中工程的C ...
- 在使用add()方法添加组件到容器时,必须指定将其放置在哪个区域中
BorderLayout是Window.Frame和Dialog的默认布局管理器,其将容器分成North.South.East.West和Center 5个区域,每个区域只能放置一个组件. 在使用ad ...
- datagrid加分组后的效果
aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAd8AAADdCAIAAAB13e+wAAAZgElEQVR4nO2d/28b533Hn7+APxnYgL ...
- Wise 打包细节
细节 说明 添加卸载快捷方式 缺省的安装程序快捷方式中没有卸载项:只能通过控制面板删除,或者主程序目录下的UnWise.exe来卸载.实际上,该文件就可以作为卸载程序. 可以复制一个快捷方式,将程序名 ...