PHP是一种服务器端脚本语言,即只在Web服务器中被解释并运行,用户的浏览器并不需要理解PHP。
1 语法入门
1.1 PHP标记
通常的PHP代码 <? php
为开始,以 ?>
为结束,类似与HTML标签,所以也叫做PHP标记。这可以告诉Web服务器PHP代码的开始和结束。这两个标记之间的任何文本都会被解释成为PHP。
PHP标记有4种不同风格可供我们使用:
XML风格
<?php echo '<p>Order processed.</p>'; ?>
简短风格
<?php echo '<p>Order processed.<.p>'; ?>
SCRIPT风格
<script language='php'> echo '<p>Order processed.</p>'; </script>
ASP风格
<% echo '<p>Order processed.</p>'; %>
1.2 PHP语句、空格以及注释
通过将PHP语句放置在PHP的开始和结束标记之间,我们可以告诉PHP解释器进行何种操作。
间隔字符如换行(回车)、空格和Tab(制表符)都被认为是空格,PHP解释器会自动忽略这些空格字符。
注释跟Javascript一样,就不说了。
1.3 字符串中的双引号和单引号
PHP有两种字符串类型,一种是具有双引号的,而另一种就是单引号。而PHP将试着计算双引号字符串。
2 PHP的数据类型
PHP支持如下基本数据类型:
- Integer
- Float
- String
- Boolean
- Array
- Object
- NULL
- resource:特定的内置函数将返回resource类型的变量,它们都代表外部资源如数据库连接。
2.1 gettype
函数
gettype
函数用于确定变量的标准类型并返回一个包含类型名称的字符串:bool
,int
,string
,double
(对应 float
),array
,object
以及 resource
,如果变量类型不是其中一种就会返回 “unkown type”。
PHP还提供了一些特定的类型测试函数:
is_array()
is_bool()
is_double()
,is_float()
,is_real()
is_long()
,is_int()
,is_integer()
is_string()
is_bool()
is_resource()
is_object()
:检测变量是否一个对象is_null()
:检测变量是否为一个资源is_scalar()
:检测变量是否为null
is_numeric()
:检测该变量是否为任何类型的数值或数字字符串is_callable()
:检测该变量是否为有效的函数名称
类似的,也有检测变量状态的函数:
isset()
:检测变量是否存在unset()
:销毁一个变量empty()
:检查一个变量是否存在,以及它的值是否为非空或非零,注意它与isset()
区别
2.2 settype
函数
用于类型的转换,语法:
bool settype(mixed var, string type)
同样的还可以这样进行类型的转换:$countFloat = (float) $countInt
3 变量与操作符
3.1 使用常量
常量一旦定义就不能修改,且常量只能保存为字符串、数字、布尔值或浮点数,声明常量:define('TIORPRICE', 100);
3.2 变量的作用域
PHP的作用域比较重要的作用域规则:
- 常量,一旦被声明就全局可见
- 内置超级全局变量可以在脚本的任何地方使用和可见,超级全局变量的完整列表如下:
$GLOBALS
:全局变量的关联数组$_SERVER
:服务器 环境变量 的关联数组$_GET
:通过GET
方法传递给该脚本的变量关联数组$_POST
:通过POST
方法传递给该脚本的变量关联数组$_COOKIE
:cookie变量关联数组$_FILES
:与文件上传的相关的关联数组$_ENV
:环境变量关联数组$_REQUEST
:所有用户输入的变量关联数组$_SESSION
:会话变量关联数组
3.3 运算符
运算符其实都是大同小异,值得要讲一下的是以下这几个运算符:
3.3.1 字符串连接符
在这里字符串的连接并不能使用 +
号来拼接,而是要使用 .
符号进行拼接,如:
$a = "Helllo,";
$b = "world";
$c = $a.$b;
3.3.2 引用操作符
引用操作符可以在 关联赋值 中使用,比方说,当将一个变量的不可变量值赋给另一个变量的时候,会先产生原变量的一个副本,然后再将它保存在内存的其他地方,再将该要被赋值的变量的指针指向那个地方。
如果此时想要它们都共用一个地址,就可以使用 &
引用操作符,例如:
$a = 5;
$b = &$a;
$a = 7; // $b 也会跟着改变
当然此时用使用 unset($a)
即可重置 $a
所指向的地址。
3.2.3 错误抑制操作符
错误抑制操作符 @
可以在任何表达式前面使用,如 @(57/0)
这样可以抑制产生一个除0警告,如果启用了PHP配置文件中的 track_errors
特性,错误信息将会保存在全局变量 $php_errormsg
中。
3.2.4 命令行执行操作符
执行操作符它由一双反引号 ` ,但它确实是一对操作符,PHP将试着将反引号之间的内容当做 服务端的命令行来执行,表达式的值就是命令的执行结果
3.2.5 类型操作符
只有一个类型操作符:instanceof
,它用于检测一个对象是否为某个特定类的实例。
class someClass();
$myClass = new someClass();
if ($myClass instanceof someClass) {
echo '$myClass 是属于someClass';
}