@Zjmainstay
2014-08-28T10:21:09.000000Z
字数 2208
阅读 1578
PHP
基础入门
课程
总览
(1)基本语法
(2)数据类型
(3)变量和常量
(4)运算符
(5)流程控制
(6)函数
(7)类和对象
(8)命名空间
(9)附:引用
(10)数据库应用
(11)框架与系统
分解
(1)基本语法
<?php ?> //推荐使用
<? ?> //短标记【默认关闭】short_open_tag=Off
<% %> //ASP标记写法【默认关闭】asp_tags=Off
示例一:
<?php
phpinfo();
?>
示例二:
在与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中引入它,如下:
<?php
include "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 带小数点的数值
浮点数相加减会产生误差,比如:
<?php
echo (int)((0.1 + 0.7) * 10); // 7
字符串类型
(1) 双引号字符串
(2) 单引号字符串
(3) heredoc 字符串 (双引号特性)
(4) nowdoc 字符串 (单引号特性)
数组类型
(1)按类型
- 索引数组
- 关联数组
(2) 按层级
- 一维数组
- 多维数组
索引数组,以整数从0到n作为键值,自动递增
关联数组,可以是字符串或整数作为键值
一维数组,值中不包含数组的数组
多维数组,值还是数组的数组,可以嵌套多层
取值,直接键位取值或遍历取值
对象类型
由类实例化得到对象。
类就相当于一个模板,对象就是用模板印出来的东西,一个模板可以印制多个东西,同样类也可以创建多个对象。比如一个彩笔类:
<?php
class 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)框架与系统