第一节 hello world
文件命名
文件后缀名为 php
文件名中不可包含中文、空格、特殊符号
建议使用有意义的英文单词命名
语言标记
标准风格
<?php.......?>
注意:
纯php脚本文件要求:
开始标签要在第一行顶头写;
删除结束标签。
php标签之外是html语言环境,在纯php代码环境下,这些html字符(包括看不见的空格或者回车,制表符号)也会一同输出,引发意外错误。因此,在编码规范中规定:库文件、class类文件等只要是纯php代码的文件,要删除结尾的 ?> 结束标签。
<!DOCTYPE html> <html> <body> <button>ajax异步请求</button> </body> </html> <script src="jquery-1.11.3.min.js"></script> <script> $("button").click(function(){ $.get("doAction.php",function(data){ alert(data? "ok":"no"); }) }) </script> <?php echo false; //输出:"" ?>
结束标签后有空格,输出:" "
所以要删除php的结束标签
注释符与结束符
// 单行注释 /* 多行注释 */
结束符使用英文分号 “;”
$hello="hello world";
常用命令和系统函数
echo
echo输出 : 只能输出字符串、数字、布尔(true:1 false:空)类型的数据
<?php $hello="hello world"; echo "<h1>{$hello}</h1>"; ?>
还有一种短标签的写法,有着比较悠久的历史,但出于某些神秘的安全原因,不推荐使用。以下写法在php.ini配置文件里如果打开了short_tag,是可以简写的。
<h1> <?= $hello ?> </h1>
相当于
<?php echo $hello ?>
var_dump()
此函数显示一个或多个表达式的结构信息,包括表达式的类型与值。数组将递归展开值,通过缩进显示其结构
注意: var_dump中的变量必须是存在的,如果变量存在但值是空,则返回false 没有变量时,则返回NULL 该函数有输出的功能,因此不必加其它的输出函数
require与include
1. require
常用于引入重要文件,若引入失败会直接影响到当前整个脚本,引入失败报 Error错误
2. include
常用于引入普通文件,若引入失败不会对当前脚本有较大的影响,引入失败报 Warning错误
3. require_once
避免重复引入,其他规则同require
4. include_once
避免重复引入,其他规则同include
header
用于定义 HTTP协议头信息。
php
第二节 变量与常量
变量
声明变量:$
命名规则:字母数字下划线、首字母不能为数字、严格区分大小写、且不能使用关键字!推荐驼峰命名法
变量销毁:unset(变量名),被销毁的变量在内存中被释放
引用变量
变量引用:用不同的名字访问同一个变量内容
$man="zhangsan"; $student=&$man; //用&符号引用 var_dump($man===$student);//true
常量
使用define关键字定义常量,常量命名要全部大写,常量的数据类型不能是 资源、对象
定义常量
define("SCHOOL","清华大学");
判断常量
var_dump( defined("SCHOOL") ); // true
变量与常量的差异
差异 | 变量 | 常量 |
定义 | $声明 | define()函数定义 |
命名 | 大小写敏感 | 必须大写(行业规范) |
赋值 | 可以重新赋值 | 不能再赋值 |
数据类型 | 8种数据类型 | 只能是标量 |
销毁 | unset() 销毁 | 不能销毁 |
判断方法 | isset() 判断是否定义 | defined() 判断是否定义 |
作用于 | 局部作用域 | 全局作用域 |
第三节 数据类型
八种数据类型
四种标量类型
– 布尔型(boolean)
– 整 型(integer)范围:2^32或2^64(超出自动转换为浮点型)
– 浮点型(float)范围:双精度
– 字符串(string)
两种复合类型
– 数组型(array)
– 对象型(object)
两种特殊类型
– 资源型(resource)
– 空 型(null)
不同进制
$number1 = 0b10; // 0b开头 二进制 结果:2
$number2 = 0123; // 0开头 八进制 结果:83
$number3 = 0x123; // 0X开头 十六进制 结果:291
对象型
具有一定功能和特征的单个事物,对象是属性和方法的集合
资源型
变量可以是文件夹、一个文件、从数据库中得到的结果集等,操作这个变量,相当于操作这些资源。
NULL型
null也是数据,通常表示一种状态,变量没有任何值,就用null表示。以下情况会得到null:
直接将一个变量赋值为null
将一个变量销毁后再次使用该变量
直接使用一个不存在的变量
第四节 数据类型转换
自动类型转换
在特殊运算时,会有自动类型转换的情况
null 对象
未知变量(或被销毁变量)
强制类型转换
改变原变量类型
使用 settype() 函数可以将一个指定变量强制转换为另一种指定类型
不改变原变量类型
格式:新变量 = (指定变量类型) 原变量;
强制类型转换:不改变原变量类型
定义一个存储变量
$old = 1; $new; // 用于接收转换之后的变量
开始转换
$new = (Boolean) $old; // true $new = (Integer) $old; // 1 $new = (Float) $old; //float 1 $new = (String) $old; // "1" $new = (Array) $old; // Array $new = (Object) $sum; // Object
常用变量检测函数
常用数学运算函数
第五节 字符串
三种定义方式
$num = 10;
单引号
$title = 'hxsd'.$num.'beijing';
双引号 支持解析变量,不能解析表达式,例如:{$hxsd+1}
$school ="<div id='box'><h1>{$hxsd}</h1></div>";
定界符(可以任意取名)
$str2 = <<<mark<div id='box'><h1 class="main">{$hxsd}</h1></div>mark;
注意:
定界符中可以使用单、双引号,可以解析变量
定界符中的字符串,会保留所有格式,包括各种空格(尽量顶格写,避免开始的空格)
结束标记一定要顶格写
开始、结束标记(上面代码中的‘mark’)后不能再有空格等字符(包括注释语句也不能有)
字符串支持折行,注意:折行位置会多一个空格
$txt="abcdefghijk"; //显示结果:abcd efghijk
常用字符串操作函数
第六节 数组
数组类型
关联式数组:下标为有意义的字符串
索引式数组:下标为默认从0开始的数值
定义数组
直接赋值方式定义
$a[] = 10; $a[] = 20; $a['name'] = '张三'; $a['sex'] = '男';
结果
/** * 0 => int 10 * 1 => int 20 * 'name' => string '张三' (length=9) * 'sex' => string '男' (length=3) */
使用array()函数
$b = array(10,20,30); $b = array('name'=>'张三', 'sex'=>'男', 'age'=>28);
快捷赋值
$c = [10,20,30];$c = ['name'=>'张三','sex'=>'男','age'=>28];
二维数组与多维数组
二维数组
$group = array('one'=>array('张三','李四','王五'), 'two'=>array('赵六','孙七'),);
定义一个三维数组
$class = array('class01'=>array( 'one'=>array('张三','李四','王五'), 'two'=>array('赵六','孙七'), ), 'class02'=>array( 'one'=>array('张三','李四','王五'), 'two'=>array('赵六','孙七'), ););
获取李四
echo $class['class02']['one'][1]; //李四
数组的遍历
for遍历索引数组
$arr=[11,22,33,44,55]; for($i=0; $i<count($arr); $i++) { var_dump($arr[$i]); };
foreach
$f_arr=["name"=>"zhangsan","age"=>18,"sex"=>"m"]; foreach ($f_arr as $key=>$value) { echo $key.":".$value."<br>"; };
list(只用于索引数组)
list($a,$b,$c,$d,$e) = ["张三","李四","王五","小明","小红"]; echo $a, $b, $c, $d, $e;
数组的输出
$b = 3.1; $c = true; var_dump($b,$c); /* 输出: float(3.1) bool(true) */
复制数组
$arr1=[111,222,333];$arr2=$arr1; // $arr2是个新数组 var_dump($arr2===$arr1); // false
用&引用数组
$arr3 = &$arr1; var_dump($arr3 === $arr1); // true
数组常用函数
数组转JSON
第七节 运算符
$a=10; $b=20; $c="hxsd";
数字与数字相加:数学运算
echo $a+$b; // 30
数字与字符串相加
echo $a+'2018你好'; // 2028 数字开头为2018 echo "2018你好"+$a; // 2028 同上 echo $a+'你好2018'; // 10 以字母开头字符串,转换成0 echo "你好2018"+$a; // 10 同上
数字与bool值
echo $a+true; // 11 true:1 false:0