第一章,主要通过C/C++程序员的角度,对PHP基本语法、变量、常量、变量与常量的作用域、运算符、运算符优先级、变量与类型相关函数、条件与循环控制语句等内容进行快速入门(Crash Course)。
一、基本语法
1、PHP Tags – 区分HTML和PHP代码
共有四种:
- XML格式(最常用,推荐):
<?php echo '<p>Order processed.</p>'; ?> - 短格式(需要开启short_open_tag参数):
<? echo '<p>Order processed.</p>'; ?> - Script脚本格式:
<script language='php'> echo '<p>Order processed.</p>'; </script> - ASP格式 (需要开启asp_tags参数,不推荐):
<% echo '<p>Order processed.</p>'; %>
2、代码注释
- 多行注释:/*…*/
- 单行注释://… 或 #…
二、变量
1、命名规则
- PHP的变量必须以 $ 字符开始
- 变量名由字母、数字和下划线组成,且不能以数字作为开头字符
- PHP的变量名是区分大小写的(case sensitive)
- 函数名不区分大小写,且函数可以和变量同名(不够make sense)
2、数据类型
PHP的有整型(Integer)、浮点型(Float)、字符串型(String)、布尔型(Boolean)、数组(Array)和对象(Object)六种常见的数据类型和空值(NULL)以及资源变量(Resource)。
PHP是一种弱类型(weakly typed)或者称为动态类型(dynamically typed)的语言,所以声明变量的时候无需显式指定类型,编译器会根据变量的值来自行决定变量类型。另外,变量也无需显式声明即能使用。
3、变量的变量
即可变变量,是指通过获取一个变量的值做为另外一个变量的名称来操作变量。
$varname = 'tireqty';
$$varname = 5;
等同于
$tireqty = 5;
三、常量
1、定义常量
define('USER_NAME', 'admin');
define('IS_ADMIN', TRUE);
2、数据类型
常量只有整型(Integer)、浮点型(Float)、字符串型(String)、布尔型(Boolean)四种数据类型。
3、使用常量
直接使用,无需使用 $ 前缀。
四、变量与常量的作用域
- 内建的超全局(superglobal)变量,如$_POST和$_GET,在任何页面都可见。
- 常量一旦声明就是全局可见的,包括在函数外和函数内。
- 脚本中声明的全局变量在该脚本中全局可见,但不包括函数内,除非在函数内使用global关键字声明该变量为全局变量。如:
<?php
$a = 1;
$b = 2;
function Sum()
{
global $a, $b; //申明在函数内使用全局变量
$b = $a + $b; //全局变量的赋值影响主程序的$b
}
Sum();
echo $b; //输出结果为 3
?> - 多数PHP变量都是局部变量,在其作用域外无法引用,并且超出其作用域时自动销毁。
- 静态变量在超出范围后不销毁,再次使用时保持前值。
五、运算符
1、数学运算符
包括“+、-、*、/、%(取模)”,同C语言。
2、字符串运算符
包括“.”,用来连接两个字符串。
3、赋值与复合赋值运算符
包括“=、+=、-=、*=、/=、%=、.=”,基本上类似于C语言。
4、自增与自减运算符
包括“++、- -”,同C语言,只要明白$a++和++$a的区别即可,没必要搞清楚(i++)+(++i)+(i++)等于多少,这种问题实际开发中不会碰到,只会出现在谭浩强的习题集中。
5、引用运算符
$a = 5;
$b = &$a;
$a = 7; // $a 和 $b 都为7
6、比较运算符
包括“==、===、!=、!==、<>、<、>、<=、>=”。
需要注意的是”7″ == 7,返回TRUE ,而 7=== “7″返回False,因为“===” 要求值和数据类型都相等。
7、逻辑运算符
包括“!、&&、||、and、or、xor”,基本上同C语言。
8、位运算符
包括“~、&、|、^、>>、<<”,同C语言。
9、其它运算符
- “,、new、->、(?:)” 同C语言
- “@” 错误控制运算符,将其放置在一个 PHP 表达式之前,忽略该表达式可能产生的任何错误信息。
- “` `” 执行运算符,注意这不是单引号,作用是尝试执行反引号中的命令。
六、运算符优先级
类似于C语言,略,不必刻意记忆,不确定的可以多加点括号。
七、变量与数据类型相关函数
- string gettype(mixed var); //返回变量的数据类型
- bool settype(mixed var, string type); //设置变量类型
- bool is_array(mixed var); //判断变量是否是数组型
- bool is_long(mixed var); / is_int() / is_integer() //判断变量是否是整型
- bool is_double(mixed var); / is_float() / is_real() //判断变量是否是浮点型
- bool is_scalar(mixed var); //判断变量是否是布尔型、整型、浮点型或字符串型
- bool is_callable(mixed var); //判断变量是否是一个函数名
- 类似的还有 is_string()、is_bool()、is_object()、is_resource()、is_null() 等
- bool isset ( mixed var [, mixed var [, ...]]); //判断变量是否已定义
- void unset ( mixed var [, mixed var [, ...]]); //销毁指定的变量
- bool empty ( mixed var [, mixed var [, ...]]); //检查变量的值是否为空或0
八、条件与循环控制语句
- if/elseif/else
- switch
- while/do…while
- for/foreach
- break
上述条件及循环控制语句均类似于其它编程语言,略。
小杰博客
您是做连连看的啊,是您开发的吗?
怪不得您的博客pr这么高,官网给您做链接了啊
朱俊
恩,llk.cn是我的站。
好东西分享
正在学习呢,个人学的PHP还是比较容易上手的
减肥药哪种好
学php有点头疼啊,谢博主了