从今天开始,我们将进行一周的PHP学习,虽然之前没有一点点PHP基础,但相信通过这一周的学习我们将会掌握PHP在服务器端主要的开发技能。 2017年06月08日16时39分 新书终于来了,先看前言。本书提供PHP从入门到高手的各类知识,共4篇: 第一篇:基础知识。介绍PHP及其环境搭建、开发工具,语言基础、流程控制、字符串操作、数组、与WEB交互、与JavaScript交互、日期、时间等内容,为以后奠定坚实基础。 第二篇:核心技术。介绍Cookie、Session、图形图像处理、文件系统、面向对象、加密技术、操作MySQL、phpMyAdmin图形化管理工具、PDO数据库抽象层、ThinkPHP框架等内容。学完后能开发数据库应用程序和一些中小型热点模块。 第三篇:高级应用。介绍Smarty模板技术、与XML、与Ajax等内容。学完后可开发网络程序。 第四篇:项目实战。第一个项目通过Smarty模板技术、PDO数据库抽象层、Ajax等主流技术实现一个大型完整的商务平台,同时运用软件工程设计思想,让读者学习如何进行网站实践开发。第二个项目通过ThinkPHP框架开发一个导航网,该项目运用软工设计思想中最流行的MVC设计观念,读者学习后可了解网站导航开发流程,掌握ThinkPHP框架开发网站流程及常用技术。 第一章:初识PHP PHP是一种服务器端HTML嵌入式脚本描述语言,最强大和重要的特性是跨平台和面向对象。本章简单介绍PHP和PHP5新特性、PHP发展趋势及学习方法,使读者对PHP有一个整体了解。 1、什么是PHP:PHP独特的语法混合了C、JAVA、PERL特点,尤其适合WEB开发。 2、语言优势:安全性高,是开源软件,每个都可以看到源代码,代码与Apache编译在一起的方式可以让它具有灵活的安全设定,具有公认的安全性能;跨平台性,支持Apache、Nginx、IIS等多种WEB服务器;支持广泛数据库,与MYSQL是目前最佳组合,组合可跨平台运行;易学性;执行速度快;免费;模板化,实现程序逻辑与界面分离;支持面向对象与过程,并可向下兼容;内嵌Zend加速引擎,性能稳快。 3、PHP5新特性:构造函数、析构函数;对象的引用;对象的克隆;对象中有三种模式public\protected\private;接口interface;抽象类;_call;_set和_get;静态成员。 4、如何学好: 5、学习资源: 5.1、常用开发工具:Dreamweaver\ZendStudio\PhpStorm\Notepad++\EditPlus等。 5.2、下载PHP用户手册: 5.3、常用网上资源:官网、技术论坛 第二章:PHP环境搭建和开发工具 本书以WampServer集成环境介绍PHP服务器的安装、配置。 我的机器安装失败,先不管了,往下学。 第三章:PHP语言基础 1、标记风格 XML风格 <?php echo "这是一个PHP"; ?> 脚本风格 <script language="php"> echo '...........'; </script> 简短风格 <? echo '............'; ?> ASP风格 <% echo '...........'; %> 若需使用简短和ASP风格,需在php.ini中配置,打开该文件将short_open_tag和asp_tags设置为On,重启Apache服务器即可。通常使用XML风格。 2、注释应用 3、PHP数据类型 支持8种原始类型,包括4种标量类型:boolean、integer、float/double、string;2种复合类型:array、object;2种特殊类型:resource、null。 说明:PHP中变量的类型通常不是由程序员设定的,是PHP根据该变量使用的上下文在运行时决定的。 3.1标量数据类型:它是数据结构中最基本的单元,只能存储一个数据。包括4种: boolean、string、integer、float 3.11、布尔型boolean:PHP中不只是只有FALSE才是假,特殊情况下0、00、“0”、空白字符串“”、只声明但没有赋值的数组等也认为是false。 PHP中美元符号$是变量的标识符,所有变量都以$开头,无论是声明变量还是调用。 3.12、字符串型string:由数字、字母和符号组成,每个字符占一个字节。PHP中有三种字符串字义方式,分别是单引号、双引号、定界符(<<<)。 单引号: <?php $a='this is string'; ?> 双引号: <?php $a="this is string"; ?> 两者不同之处:双引号中的变量会自动被替换成实际数值,单引号中的变量则按普通字符串输出。 定界符:不推荐使用,没什么毛意思。 实例: 从上例可以看出什么?我是什么也没看出来,实在看不出来单引号与双引号的区别。但是本书建议在定义简单的字符串时,使用单引号是一个更加合理的方式。原因是使用双引号时,PHP将花费一些时间来处理字符串的转义和变量的解析。 3.13、整型integer:数据类型只包含整数,有效范围-2147483648至+2147483647。若给定数值超过范围按float型处理,这种情况叫整数溢出。同样两数相加超过范围自动返回float型。 3.14、浮点型float:用来储存数字,可包存小数,有效范围1.7E-308至17E+308,4.0版本前,浮点型标识为double,两者无区别。圆周率写法实例: 哎,后两种写法出错,这本书怎么回事。上例中可以看出 . 符号是连接字符串与变量的作用。 书中有段话很有意思:“注意:浮点型的数值只是一个近似值,所以要尽量避免用两个浮点型数值比大小,结果往往是不准确的。” 3.2复合数据类型:数组array和对象object 3.21数组array:一组数据的集合,把一系列数据组织起来形成一个可操作的整体。可以包括标量数据、数组、对象、资源及PHP中支持的其它语法结构等。数组中的每个数据称为一个元素,元素包括索引(键名)和值两部分。元素的索引可由数字或字符串组成,值可以是多种数据类型。格式如下: $array=array('value1','value2'...); 或 $array[key]='value'; 或 $array=array(key1=>value1,key2=>value2...); 来个实例试一下: 声明数组后,数组中的元素还可自由更改。只要给数组赋值,数组会自动增加长度。 3.22对象object:编程语言所用到的方法有两种,面向过程和面向对象,在PHP中可自由使用这两种方法。 3.3特殊数据类型: 3.31资源resource:资源类型是PHP4引进的,在使用资源时,系统会自动启用垃圾回收机制,释放不再使用的资源,避免内存消耗殆尽。因此资源很少需要手工释放。 3.32空值null:表示没有为该变量设置任何值。不分大小写null与NULL是一样的,实例代码: 3.4数据类型转换:虽然PHP是弱类型语言,但有时也会用到类型转换。PHP类型转换与C、JAVA一样,只需在变量前加上用括号括起来的类型名称即可。有几点需要注意:转换成boolean类型时,null、0和未赋值的变量或数组会被转换成false,其它为true;转换成整型时,false转换为0,true转换为1,浮点型的小数被舍去,字符型如果以数字开差就载取到非数字位,否则输出0。 类型转换有一个函数settype($string,数据类型),将指定变量转换成指定数据类型,同时返回值,成功返回true,否则false。看个实例,学习的过程中,不亲自动手写写真的不行。 3.5检测数据类型:PHP内置了检测数据类型的系列函数,可对不同类型的数据进行检测,判断是否属于某个类型,属于返回TRUE,否则返回FALSE。8个函数,选is_numeric()试一下吧: 4、声明和使用常量:常量是值不变的量,常量值被定义后,在脚本的任何地方都不能改变。声明常量不能以数字作为首字母出现。PHP中使用define()函数来定义常量,语法如下: define(string name,value,是否区分大小写); 第一个参数是常量名称,必选,可以是字符串或定义字符串的变量;第二个参数是常量值,必选;第三个参数可选,true表示不敏感。要判断一个常量是否已定义,可使用defined()函数,语法如下: bool defined(name); 定义返回true,未定义返回false。 看实例: 使用defined()函数时,参数常量值记得加引号。是常量返回1,不是常量不返回值。 4.2预定义常量:PHP中可以使用预定义常量获取PHP中的信息,参考相关资料,不作介绍了。上个实例: 5、PHP变量:PHP4开始引入了“引用赋值”。敲个实例吧: <?php $a='hello php'; $b=& $a; $a='hi php'; echo $a; echo $b; ?> 上面代码输出$a和$b的值是一样的。 5.2变量作用域:分三种,局部变量、全部变量、静态变量。这里要说的是全局变量,跟其它语言不太一样,全局变量在函数内部使用时要使用global关键字声明。 <?php $a='php'; function cc(){ $b='hello'; echo $b; global $a; echo $a; } ?> 再上个静态变量的例子: 上例看出,静态变量的初始化只在第一次时被执行,以后就不再对其进行初始化操作了。 5.3可变变量:这个东东以后感觉有用了再来说 5.4PHP预定义变量:PHP提供了一些很实用的预定义变量,可通过这些获取用户会话、操作系统和本地系统的环境信息。常用的可参考相关资料 6、PHP的运算符:包括算术运算符、字符串运算符、赋值运算符、位运算符、逻辑运算符、比较运算符、递增、增减运算符和条件运算符。本节只介绍一些常用的: 6.1算术运算符:+-*/% 6.2字符串运算符:只有一个英文句号,表示将两个字符连接起来。 6.3赋值运算符:有7个:赋值=,加+=,减-=,乘*=,除/=,连接字符.=,取余数%= 6.4递增、递减运算符: 6.5位运算符: 6.6逻辑运算符:4个。逻辑与(&&或and),逻辑或(||或or),逻辑非(!),逻辑异或(xor,即当前、后一真一假时返回true); 6.7比较运算符:多了===、!==,恒等和非恒等。 6.8条件运算符:?: 也称三目运算符,实例如下: 6.9运算符的优先级:遵循原则:优先高的运算先执行,优先级低的操作后执行,同级操作按照从左到右的顺序执行。 7、PHP的表达式: 8、PHP函数:函数就是将一些能够重复使用的代码写到一个独立的代码块中,在需要时单独调用。语法格式为: function fun_name($str1,$str2...){ fun_body; } 8.1定义和调用函数 8.2函数间传递参数:传递方式有3种,按值传递、按引用传递和默认参数。 按值传递方式:即将实参复制到对应的形参中,在函数内部针对形参进行,操作的结果不影响实参。这个很常见,不举例了。 按引用传递方式:引用传递是将实参的内存地址传递到形象中,这样在函数内部对形象的操作将影响到实参的值。引用传递方式就是传值时在原基础上加&即可。来个例子: 默认参数方式:即可选参数。需要注意的是当有多个参数时,可选的参数必须放在右边,否则容易出错。实例: 书上有个说明:PHP5开始,默认参数也可以通过引用传递。意思就是:如果默认参数是一个引用,那么有实参的话,默认的形参值跟随实参改变。 8.3从函数中返回值:通过返回值的方式是使用关键字 return。但如果是在全局作用域内使用return,那么将终止脚本的执行。 8.4变量函数:意义不大,不说了。 8.5编码规范:这个也不多说 9、PHP书写规则: 9.3命名规则: 类命名:1、使用大字母作为单词分隔;2、名字的首字母使用大写;3、不使用下划线; 类属性命名:1、属性名应以字母m为前缀;2、前缀m后使用规则与类名一致; 方法命名:基本与类名一致 方法中参数命名:1、第一个字符使用小写;2、首字符后的所有字符同类命名; 变量命名:1、所有字母小写;2、使用下划线分隔单词; 引用变量:须带有r作前缀 全局变量:使用g作前缀 常量/全局常量:全部大写,使用下划线分隔单词 静态变量:带前缀s 函数命名:使用小写字母,使用下划线分隔单词 好了,至此前三章看完了。
|
|