分享

PHP学习第一课

 gkok 2017-06-04

    从今天开始,我们将进行一周的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是一样的,实例代码:
 
 
 
上例看出isset()方法判断变量是否被设置,如果设置返回true,反之返回false;is_null()方法正好相反,如果该变量没有设置返回true,否则返回false;unset()方法用来销毁指定的变量,从PHP4开始unset()函数不再返回值,所以不要试图获取或输出unset()。
3.4数据类型转换:虽然PHP是弱类型语言,但有时也会用到类型转换。PHP类型转换与C、JAVA一样,只需在变量前加上用括号括起来的类型名称即可。有几点需要注意:转换成boolean类型时,null、0和未赋值的变量或数组会被转换成false,其它为true;转换成整型时,false转换为0,true转换为1,浮点型的小数被舍去,字符型如果以数字开差就载取到非数字位,否则输出0。
类型转换有一个函数settype($string,数据类型),将指定变量转换成指定数据类型,同时返回值,成功返回true,否则false。看个实例,学习的过程中,不亲自动手写写真的不行。
 
注意:使用(integer)str1转型时,str1的自身值没有变化;使用settype()函数时,str1的自身值被修改了。在实际应用中,可根据情况自行选择转换方式。
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
函数命名:使用小写字母,使用下划线分隔单词
 
好了,至此前三章看完了。
 

 

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多