@Zjmainstay
2014-08-28T02:21:09.000000Z
字数 2208
阅读 1741
PHP 基础入门 课程
总览
(1)基本语法
(2)数据类型
(3)变量和常量
(4)运算符
(5)流程控制
(6)函数
(7)类和对象
(8)命名空间
(9)附:引用
(10)数据库应用
(11)框架与系统
分解
(1)基本语法
<?php ?> //推荐使用<? ?> //短标记【默认关闭】short_open_tag=Off<% %> //ASP标记写法【默认关闭】asp_tags=Off
示例一:
<?phpphpinfo();?>
示例二:
在与html混用的时候常见 <div><?=$var?></div>,
这里等价于 <?php echo $var; ?>,
推荐使用第二种。
echo "带有换行的语句"; //上一行不需要分号
函数体,类体等后面不需要分号,比如:
class Test {function dump() {echo "Hello";}}
在一段PHP代码中的结束标记?>隐含表示一个分号,因此前面的<?php echo $var; ?>可以写成<?php echo $var ?>
在一个PHP文件中,特别是纯PHP文件中(没有混编HTML代码),结束标记 ?>最好去除,否则可能导致文件引入的时候带有空白字符输入,比如:
<?php//文件A.php,注意第4行有个空行并且有4个空格?>
假如在文件B中引入它,如下:
<?phpinclude "A.php";echo "我前面引入的A.php输出了4个空格";
输出结果会发现得到" 我前面引入的A.php输出了4个空格"。
所以,纯PHP文件的末尾要移除结束标记 ?>
对于PHP+HTML混编的代码,在HTML标记混杂中的PHP代码要有完整的标记。比如:
<!DOCTYPE html><html><body><?php$hello = "Hello";echo $hello;?><div>前面输出了Hello</div></body></html>
这里的 ?> 就不能去掉,因为它要区分PHP和HTML标记,否则后面都成为PHP的代码了,这是不合理的。
// //单行注释# //单行注释/* //多行注释注释内容*/变种:/** //这里2个** //还是多行注释,常见类、方法、函数等注释说明*/
(2)数据类型
布尔类型
true / false
整型
int,就是整数
浮点型
float/double 带小数点的数值
浮点数相加减会产生误差,比如:
<?phpecho (int)((0.1 + 0.7) * 10); // 7
字符串类型
(1) 双引号字符串
(2) 单引号字符串
(3) heredoc 字符串 (双引号特性)
(4) nowdoc 字符串 (单引号特性)
数组类型
(1)按类型
- 索引数组
- 关联数组
(2) 按层级
- 一维数组
- 多维数组
索引数组,以整数从0到n作为键值,自动递增
关联数组,可以是字符串或整数作为键值
一维数组,值中不包含数组的数组
多维数组,值还是数组的数组,可以嵌套多层
取值,直接键位取值或遍历取值
对象类型
由类实例化得到对象。
类就相当于一个模板,对象就是用模板印出来的东西,一个模板可以印制多个东西,同样类也可以创建多个对象。比如一个彩笔类:
<?phpclass ColorPen {//彩笔颜色,默认黑色function __construct($color = '黑色') {$this->color = $color;}/*** 生成彩笔*/public function create() {echo "我得到一个{$this->color}的笔\n";}/*** 设置彩笔颜色* @param $color 彩笔颜色*/public function setColor($color) {$this->color = $color;}/*** 获取当前彩笔颜色*/public function getColor() {return $this->color;}}$pen = new ColorPen(); //初始化没有提供颜色,默认黑色$color = $pen->getColor();echo "当前颜色:{$color} \n";$pen->setColor("红色");$color = $pen->getColor();echo "设置后颜色:{$color} \n";$penRed = new ColorPen("红色");$penGreen = new ColorPen("绿色");$penBlue = new ColorPen("蓝色");echo $penRed->create();echo $penGreen->create();echo $penBlue->create();
资源类型
fopen, mysql_connect等返回的就是资源类型
NULL
变量未定义,函数无返回值,变量赋值为NULL,unset()销毁
两个取值不报错提示的语言结构:
- isset
- empty
这两个虽然也是跟函数一样调用,但是它们是一个语言结构,并非一个函数。使用function_exists()函数判断的时候结果为false。
附:语言结构
echo, print, unset(), isset(), empty(), include, require 没有带括号的表示可以不带括号调用。
(3) 变量和常量
(4)运算符
(5)流程控制
(6)函数
(7)类和对象
(8)命名空间
(9)附:引用
(10)数据库应用
(11)框架与系统