前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >读书笔记《PHP与MySQL程序设计》一

读书笔记《PHP与MySQL程序设计》一

作者头像
小古哥
发布2018-03-08 17:06:05
2.2K0
发布2018-03-08 17:06:05
举报
文章被收录于专栏:小古哥的博客园

第1章 PHP概述

1.1  历史(PHP4、PHP5、PHP5.3、PHP6[未发布])

1.2 一般语言特性(实用性、强大功能、可选择性、成本[开源])

第2章 环境配置

2.1 安装的前提条件(apache或IIS7)

2.2 在Linux上安装Apache和PHP

2.3 在Windows上安装Apache和PHP

2.4 在Windows上安装IIS和PHP

2.5 测试安装

2.6 配置PHP

2.7 运行时配置

2.8 选择代码编辑器

2.9 选择WEB托管服务商

第3章 PHP基础

3.1 在Web页面中嵌入PHP代码

3.2 为代码添加注释

代码语言:javascript
复制
<?php  echo "hello world!" ?> //默认语法
<?  echo "hello world!"?> #短标签
/* 这是一段多行注释*/

3.3 向浏览器输出数据

代码语言:javascript
复制
//print语句,如下两句输出结果相同
<?php print("<p>Hello PHP!</p>"); ?>
<?php $str="PHP";print "<p>Hello $str!</p>"; ?>
代码语言:javascript
复制
//echo语句,几乎等同于print
<?php $str1="A";$str2="B";echo $str1." and ".$str2; ?>
代码语言:javascript
复制
//printf语句,输出由静态和若干变量动态信息的混合
<?php printf ("<p>%d bottles of tonic water.</p>",100) ?>
/* %b  整数,显示为二进制
   %c  整数,显示为对应ASCII字符
   %d  整数,显示为有符号十进制
   %f  浮点数,显示为浮点数
   %o  整数,显示为八进制
   %s  字符串,显示为字符串
   %u  整数,显示为无符号十进制
   %x  整数,显示为小写十六进制
   %X  整数,显示为大写十六进制 */
代码语言:javascript
复制
//sprintf语句,输与printf类似,但它将输出赋值给一个字符串
$cost=sprintf("$%.2f",43.2);//$cost=$43.20

3.4 PHP支持的数据类型

  标量数据类型:布尔型、整型、浮点型(单精度[float]、双精度[double]、实数[real number])、字符串

  复合数据类型:数组、对象

  类型强制转换操作符

代码语言:javascript
复制
/* (array)                    转为数组
   (bool)或(boolean)          转为布尔值
   (int)或(integer)           转为整数
   (object)                  转为对象
   (float)或(double)或(real)  转为浮点数
   (string)                  转为字符串*/   
$score=(int) 14.8; echo $score;//14
$str="this is str"; echo (int) $str;//0
$score=114; $scoreboard=(array) $score;echo $scoreboard[0];//114,数字被转换为数组的一个成员
$name="Gavin"; $obj=(object) $name; echo $obj->scalar;//Gavin,任何数据都可转为对象,并默认成为对象的scalar属性

  类型自动转换

代码语言:javascript
复制
$num=5;$str="15px";echo $num+=$str;//20,字符串自动转整数
$str="1.0";if($str) echo "this is true";//this is true,字符串自动转布尔型
$val1="1.2e2";$val2=2; echo $val1*$val2;//240,字符串转整数

  与类型有关的函数:gettype(获取类型)、settype(转换类型)

代码语言:javascript
复制
$val1="1.2e2";echo gettype($val1);//string
//共有8个可能的返回值:array、boolean、double、integer、object、resource[资源]、string和unknown type
代码语言:javascript
复制
$val1="15px";echo settype($val1,"integer")."+".$val1;//1+15
//转换成功返回true,可以指定的7种类型:array、boolean、float、integer、null、object、string

  类型判断函数

代码语言:javascript
复制
//is_array,is_bool,is_float,is_integer,is_null,is_numeric,is_object,is_resource,is_scalar,is_string
$num=43;printf("\$num is of type integer:%d<br/>",is_integer($num));//43 is of type integer:1

3.5 标识符(即自定义名称,区分大小写)

3.6 变量

  变量声明:以美元符$开头,遵循标识符的命名规范,不需要显示的声明

代码语言:javascript
复制
$val1="red";//按值赋值
$val2=& $val1;//引用赋值,$val2和$val1都等于“red”

  变量的作用域:局部变量、函数参数、全局变量、静态变量(变量名前加关键字STATIC,函数退出不会销毁,再次调用函数可使用缓存)

  PHP的超级全局变量:$_SERVER、$_GET、$_POST、$_COOKIE、$_FILES、$_ENV、$_SESSION

  变量的变量

代码语言:javascript
复制
$str="A";$A="B";echo $$str;//B,$$str相当于$A

3.7 常量(一旦定义无法修改,使用define()函数定义)

代码语言:javascript
复制
define("PI",3.1415926);printf("<p>The value of PI is %f</p>",PI)

3.8 表达式

  操作数(通常指变量)

  操作符:操作符的优先级和结合性,操作符种类(算术、赋值、字符串、自增自减、逻辑、相等、比较、位)

代码语言:javascript
复制
$a="abc"."def";//abcdef,字符串拼接看,这里.相当于JS中的+
$a.="ghi";//abcdefghi,拼接赋值,这里.=相当于JS中的+=

3.9 字符串插入

  双引号(包裹字符串)

  转义序列

单引号(与双引号不同,解析时变量和转义序列不会被解释

  大括号(常用于嵌入复杂数据类型,如{$arr['name']})

  heredoc(用于输出大量文本)

  Nowdoc(php5.3新特性,等同于heredoc)

代码语言:javascript
复制
$a="abc";echo "$a is good \n";//abc is good,双引号解析
$a="abc";echo '$a is good \n';//$a is good \n,单引号不解析

3.10 控制结构

  条件语句:if、else、elseif、switch

  循环语句:while、do...while、for、foreach、break和goto和continue

  文件包含语句:include、include_once、require(与include的区别是在if为假,依然请求指定文件到当前位置)、require_once

第4章 函数

4.1 调用函数

4.2 创建函数

代码语言:javascript
复制
function fun1($a){$a+=1;};$num=1;fun1($num);echo $num;//1,按值传递参数,函数内修改变量的值,不影响其函数外的值
function fun2(&$a){$a+=1;};$num=1;fun2($num);echo $num;//2,按引用传递参数,函数内修改变量的值,函数外同步修改
代码语言:javascript
复制
function fun($a,$b=2){echo $a*$b};$num=5;fun($num);//10,$b为参数默认值
代码语言:javascript
复制
function fun(){return array("red","blue","green");};list($r,$b,$g)=fun();echo "$r,$b,$g";
//return函数返回值,需要返回多个值时使用数组,list()函数给一组变量赋值
代码语言:javascript
复制
function fun($a){if($a>0){return $a+fun($a-1);}};echo fun(5);//15,递归函数

 4.3 函数库

第5章 数组

5.1 什么是数组

5.2 创建数组

代码语言:javascript
复制
$arr1[0]="one";$arr1[1]="two";//直接建立引用即可
$arr2[]=1,$arr2[]=2;//若索引值是数值且递增,创建时可省略索引值
$arr3["name"]="gavin",$arr3["age"]=30;//创建关联数组,不过必须一直使用键
$arr4=array("one","two");//使用array()创建索引数组
$arr5=array("name"=>"gavin","age"=>30);//使用array()创建关联数组
代码语言:javascript
复制
$arr=array("one","two");list($a,$b)=$arr;echo "$a + $b";//one + two,list函数提取数组
$die=range(1,5);//range函数预定义值来填充数组,类似$die=array(1,2,3,4,5)
$state=array(1,2);printf("\$state is array:%s",(is_array($state)?"true":"false"));//is_array函数测试数组

5.3 输出数组

代码语言:javascript
复制
$arr=array("one","two");foreach($arr AS $a){echo "{$a}\n";};//使用foreach遍历输出,多维数组可考虑vprintf函数
print_r($arr);//Array ( [0] => one [1] => two ),打印数组用于测试

5.4 添加和删除数组元素

代码语言:javascript
复制
$arr=array("two");
array_unshift($arr,"zero","one");print_r($arr);//在数组头添加一个或多个
array_push($arr,"three","four");print_r($arr); //在数组尾添加一个或多个
echo array_shift($arr)."\n";print_r($arr);   //在数组头删除,返回删除值,每次删除一个
echo array_pop($arr)."\n";print_r($arr);       //在数组尾删除,返回删除值,每次删除一个

5.5 定位数组元素

代码语言:javascript
复制
$a="one";$arr=array("one","two");if(in_array($a,$arr)){echo '$a in $arr'}//搜索数组,返回布尔值
$arr["one"]=1;if(array_key_exists("one",$arr)){echo 'one in $arr';}//搜索关联数组键,返回布尔值
$key=array_search(1,$arr);if($key){echo "$key : $arr[$key]";}//搜索关联数组值,如果找到返回相应键,否则false
代码语言:javascript
复制
$arr=array("name"=>"gavin","age"=>30);
print_r(array_keys($arr));//Array ( [0] => name [1] => age ),获取数组的键组
print_r(array_values($arr));//Array ( [0] => gavin [1] => 30 ),获取数组的值组

5.6 遍历数组

代码语言:javascript
复制
$arr=array("name"=>"gavin","age"=>30);
while(key($arr)){echo key($arr)."\n";next($arr);}//name age,遍历数组键
reset($arr);//重置指针到数组首位,(next)下一位、(prev)上一位,(end)末尾位
while(current($arr)){echo current($arr)."\n";next($arr);}//gavin 30,遍历数组值

5.7 确定数组的大小和唯一性

代码语言:javascript
复制
$arr=array("a","b");echo count($arr);//2,count确定数组大小,与sizeof相同
$arr1=array("a","b","c","a");print_r(array_count_values($arr1));//统计数组元素出现的频次
//Array ( [a] => 2 [b] => 1 [c] => 1 )
print_r(array_unique($arr1));//删除重复项

5.8 数组排序

代码语言:javascript
复制
$arr=array("one","two","three");
print_r(array_reverse($arr));//数组倒序,Array ( [0] => three [1] => two [2] => one )
print_r(array_flip($arr));//数组键和值对换,Array ( [one] => 0 [two] => 1 [three] => 2 )
sort($arr);print_r($arr);//数组排序,破坏键值关联,Array ( [0] => one [1] => three [2] => two )
$arr=array("one","two","three");//重置
asort($arr);print_r($arr)//同sort,保持键值关联,Array ( [0] => one [2] => three [1] => two )
rsort(array);//与sort相同,排序相反
arsort(array);//与asort相同,排序相反
natsort(array);//自然排序
natcasesort(array);//不区分大小写的自然排序
ksort(array);//按键值对数组排序
krsort(array);//与ksort相同,排序相反
usort(array,callback);//根据自定义规则排序

 5.9 合并、拆分、接合和分解数组

代码语言:javascript
复制
array_merge(array1,array2);//合并两个或多个数组
array_merge_recursive(array1,array2);//与array_merge相同,仅关联数组出现相同键时,前置是替换,它是将值合并为数组
array_combine(keys,values);//将键数组和值数组,组合为新的关联数组,两者大小要相同且不为空
array_slice(array,[offset,[length]]);//拆分数组
array_splice(array,[offset,[length]]);//接合数组
array_intersect();//求数组的交集
array_intersect_assoc();//求关联数组的交集
array_diff();//求数组的差集
array_diff_assoc();//求关联数组的差集

5.10 其他有用的数组函数

代码语言:javascript
复制
array_rand(array[,num]);//返回一组随机的键
shuffle();//随机洗牌数组元素
array_sum();//对数组中的值求和
array_chunk();//划分数组

第6章 面向对象的PHP

6.1 OOP的好处(封装、继承、多态)

6.2 关键的OOP概念(类、对象、属性)

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2017-12-21 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云数据库 SQL Server
腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档