第一节helloworld
文件命名
文件后缀名为php
文件名中不可包含中文、空格、特殊符号
建议使用有意义的英文单词命名
语言标记
标准风格
?php.......?
注意:纯php脚本文件要求:1.开始标签要在第一行顶头写;2.删除结束标签。
图一php标签之外是html语言环境,在纯php代码环境下,这些html字符(包括看不见的空格或者回车,制表符号)也会一同输出,引发意外错误。因此,在编码规范中规定:库文件、class类文件等只要是纯php代码的文件,要删除结尾的?结束标签。
!DOCTYPEhtmlhtmlbody buttonajax异步请求/button /body/htmlscriptsrc=jquery-1.11.3.min.js/scriptscript $(button).click(function(){ $.get(doAction.php,function(data){ alert(data?ok:no); }) })/script?php echofalse;//输出:?
结束标签后有空格,输出:
所以要删除php的结束标签
图二注释符与结束符
//单行注释/*多行注释*/
结束符使用英文分号“;”
$hello=helloworld;
常用命令和系统函数
echo
echo输出:只能输出字符串、数字、布尔(true:1false:空)类型的数据
?php$hello=helloworld; echoh1{$hello}/h1;?
快速输出
h1?=$hello?/h1
相当于
?phpecho$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
变量与常量的差异
数据第三节数据类型
八种数据类型
四种标量类型
– 布尔型(boolean)
– 整型(integer)范围:2^32或2^64(超出自动转换为浮点型)
– 浮点型(float)范围:双精度
– 字符串(string)
两种复合类型
– 数组型(array)
– 对象型(object)
两种特殊类型
– 资源型(resource)
– 空型(null)
不同进制
$number1=0b10; //0b开头二进制结果:2
$number2=; //0开头八进制结果:83
$number3=0x; //0X开头十六进制结果:
对象型
具有一定功能和特征的单个事物,对象是属性和方法的集合
资源型
变量可以是文件夹、一个文件、从数据库中得到的结果集等,操作这个变量,相当于操作这些资源。
NULL型
null也是数据,通常表示一种状态,变量没有任何值,就用null表示。以下情况会得到null:
直接将一个变量赋值为null
将一个变量销毁后再次使用该变量
直接使用一个不存在的变量
第四节数据类型转换
自动类型转换
在特殊运算时,会有自动类型转换的情况
null 对象
未知变量(或被销毁变量)
强制类型转换
改变原变量类型
使用settype()函数可以将一个指定变量强制转换为另一种指定类型
不改变原变量类型
格式:新变量=(指定变量类型)原变量;
强制类型转换:不改变原变量类型
定义一个存储变量
$old=1;$new; //用于接收转换之后的变量
开始转换
$new=(Boolean)$old; //true$new=(Integer)$old; //1$new=(Float)$old; //float1$new=(String)$old; //1$new=(Array)$old; //Array$new=(Object)$sum; //Object
常用变量检测函数
常用数学运算函数
PHP第五节字符串
三种定义方式
$num=10;
单引号
$title=hxsd.$num.beijing;
双引号支持解析变量,不能解析表达式,例如:{$hxsd+1}
$school=divid=boxh1{$hxsd}/h1/div;
定界符(可以任意取名)
$str2=markdivid=boxh1class=main{$hxsd}/h1/divmark;
注意:
定界符中可以使用单、双引号,可以解析变量
定界符中的字符串,会保留所有格式,包括各种空格(尽量顶格写,避免开始的空格)
结束标记一定要顶格写
开始、结束标记(上面代码中的‘mark’)后不能再有空格等字符(包括注释语句也不能有)
字符串支持折行,注意:折行位置会多一个空格
$txt=abcdefghijk;//显示结果:abcdefghijk
常用字符串操作函数
第六节数组
数组类型
关联式数组:下标为有意义的字符串
索引式数组:下标为默认从0开始的数值
定义数组
直接赋值方式定义
$a[]=10; $a[]=20; $a[name]=张三;$a[sex]=男;
结果
/**0=int10*1=int20*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;$icount($arr);$i++){var_dump($arr[$i]);};
foreach
$f_arr=[name=zhangsan,age=18,sex=m];foreach($f_arras$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=[,,];$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+你好;//数字开头为echo你好+$a;//同上
echo$a+你好;//10以字母开头字符串,转换成0echo你好+$a;//10同上
数字与bool值
echo$a+true;//11true:1false:0
PHP-网站介绍「程序员培养之路第三十天」
MySQL-函数「程序员培养之路第二十九天」
MySQL-存储过程、触发器「程序员培养之路第二十八天」