php总结性学习笔记

2024-05-05

php总结性学习笔记(通用6篇)

篇1:php总结性学习笔记

$_GET[string] 的介绍,Isset() 和empty()的介绍,数据库数据类型,

1.$_GET[string]的介绍

2.$_GET[string]

他和$_POST 的区别在于,当form method=“get”的时候,用来传值,

点击下submit后,URL转到了接受值的php页面。但是URL 不是这个页面的--1.php。而是自动生成的URL。

显示的是下面的URL:php?控件名(myname是文本框的控件名)=用户输入的值。

所以说用这个不安全。

3.Isset() 和empty()的区别

Isset()检查变量值是不是设立了。 Check the variable is set and exists.

Empty()检查变量值是不是空。 Check if the variable has contents.

对于empty(),空有7种可能,Null,0,‘’(空字符串),array(),false,遇到出现上面的7种情况返回true。

两个返回的都是布尔值。

一般情况下用empty()检查表单中户输入的是否是空值。

用if(!Empty($var))检查;

。 “0”,0.0

primary key 主键

4. MYSQL 命令:create table

命令:注意 column name column type中间没有逗号,只是空格。

看下格式

问题:Cookie 的用法

已经试过

5. Setcookie()用于服务端在客户端创建cookie。

里面的两个值是必须的。Name和value。字符串。

我自己弄的cookie。Setcookie(‘username’,‘admin’);

在IE9 中按f12 进入开发者工具中看缓存的cookie信息。

6. Cookie 的默认时间是当你关掉浏览器时就消失。

可以用时间戳time()+秒表示时间。如:time()

+(7*24*30*60)表示7天存在。 读取cookie。用$_cookie[]读取。方括号里面是string 的cookie名字。

例子:

7. mysql 数据类型:用于数据库中的table下的数据的创建

8.

注意下:char()和 varchar() 的区别: Char(2)只能存一个字符。而且一定是2个。

Varchar(60)表示能存60个字符。不一定是60个。 一般用这种。

Date ,日期格式

time,时间格式

datetime表示日期和时间格式。

Dec()表示:DEC(m,n)

M表示总的位数,n表示小数点后的.位数。

m is the total number of digits and n is the number of digits after the decimal point. Say, you want to store some numbers like the format 9999.9099999. Here the value of m is 11 and that of n is 7.

DATE - A date in YYYY-MM-DD format, 例如: 1973-12-30.

DATETIME -in YYYY-MM-DD HH:MM:SS 1973-12-30 15:30:00. TIMESTAMP - This looks like the previous DATETIME format, only without the hyphens between numbers; 3:30 in the afternoon on December 30th, 1973 would be stored as 19731230153000 ( YYYYMMDDHHMMSS ).

TIME - Stores the time in HH:MM:SS format.

YEAR(M) - If the length is specified as 4, YEAR can be 1901 to 2155. The default length is 4.

问题:If.。。Elseif。。。Else

else ifallows us to keep evaluating using if statements as many times as needed. 可以把elseif看做是另外一个if。

Use the if....elseif...else statement to select one of several blocks of code to be executed. Syntax

1 if (condition)

23code to be executed if condition is true;

4

5 elseif (condition)

6

7code to be executed if condition is true;

8

9 else

10

11code to be executed if condition is false;

问题: php连接mysql()

回答:四个函数:

mysql_connect(),mysql_select_db(),mysql_query(),mysql_close().

相关语法: mysql_connect(),连接服务器。

resource mysql_connect(string $server,string$username, string$password). 返回值:指定服务器的link identifier。或者未成功就是false。

然后用这个连接mysql中的数据库

bool mysql_select_db( string $database_name [, resource $link_identifier = NULL ] .

Mysql_select_db() 用于连接mysql服务器上的数据库。下面的mysql_query()用来在这个数据库中执行。前面$a=Mysql_select_db()错误。 mysql_query()语法:resource mysql_query( string $query [, resource $link_identifier = NULL ] ) 用于给数据库发送命令。返回resource,是个结

篇2:php总结性学习笔记

2,创建类:

Class classname

{

}

3,为该类添加属性和方法:只需要在类中声明变量即可。声明了属性之后可以获取该属性的值。

⑴创建属性:Class classname

{

Var $myName;

Var $myAge;

}

⑵创建方法:class classname

{

Var $myName;

Var $myAge;

Function getName()

{

}

Function getAget($arg1,$arg2)

{

}

}

注:以上创建了两个类的方法,方法名称分别为:getName,getAge

4,构造函数:大多数的类都有构造函数,当一个类实例被调用时,将调用构造函数,通常在构造函数中将执行一些初始化的操作。

⑴在类中声明构造函数:同声明其他函数一样,但是构造函数的名称是固定的。即函数名必须为:__construct()

注:构造函数可以由编程人员主动调用,但大部分时候,都是在创建类对象实例的时候自动调用。构造函数也可以传递参数,这些参数可以在调用类的时候传递。

声明构造函数的方法:

Class classname

{

Function __construct($param)

{

代码

}}

⑵析构函数:是一种当对象被销毁时,无论使用了unset()或简单的脱离范围,都会被自动调用的函数。

与构造函数的名称类似,一个类的析构函数名称必须是_destruct()

5,类的实例化:声明了一个类之后,如果要使用该类,必须创建该类的一个实例,实际上也可以将该类作为一个变量,在使用之前必须手动定义。用关键字“new”来创建

一个类的实例。

Class classname

{

Function __construct($myName)

{echo(“我的名字是:$myName
”);}

}

$name1=new myName(“小猪”);

$name2=new myName(“小狗”);//创建了2个该类的实例

?>

注:new myName(“小猪”)中的参数“小猪”会被 自动传递到构造函数,然后构造函数直接使用该参数。

6,使用类的属性:

在一个类中访问类成员变量有一个特殊的指针:$this通过该指针可能方便的访问类属性或是给类属性赋值。

Class classname

{

Var $myattrib;//定义属性

Function operate($myparam)//为类创建方法

{

$this->myattrib=$myparam;//设置属性值为$myparam

Echo $this->myattrib;//输出属性值

}

}

⑴如果要在类的外部访问一个类的属性,需要确定该属性能否被外部访问。因为在类中定义的属性可以设置外界访问的权限。

以上对属性$myarrtib进行限制,外界可以直接访问:

$newclass =new classname();//创建一个类classname实例

$newclass->myattrib=”小马”;//给属性赋值

Echo $newclass->myattrib;//输出属性

⑵从类的外部直接访问类的属性不是一个好的方法,面向对象方法的一个优点就是使用类的封装。可以通过使用__get()和__set()函数来实现对该类属性的访问。

Class classname

{

Var $myattrib;//定义属性

Function __get($attribName)//获取属性值的函数

{

Return $this->attribName;//返回该属性的值

}

Function __set($arrtibName,$value)//设置属性值的函数

{

$this->$attribName=$value;//设置属性值

}

}

注:__get函数只有一个参数,该参数用来传递属性的名称,__set函数有两个参数,第一个参数为属性的名称,第二个参数为要设置的属性的值。可以通过这两 个函数来检查和设置任何属性的值。

7,类的访问控制:

Php5 支持的3 种控制符:

⑴public(默认的)public表示该属性和方法在类的内部或外部都可以直接被访问。

⑵private 表示该属性和方法只能在类的内部进行访问。如果没有使用__get()和__set(),则可能对所有的属性都使用这个关键字,也要选择部分方法为私有,但私有的属性和方法不能被继承。

⑶Protected 表示被标记的属性或方法只能在类的内部进行访问,他也存在于任何子类中。Class classname

{

Public $myattrib;

Public function __get($attribName)//获取属性值的函数

{

Return $this->$attribName;//返回该属性值

}

Public function __set($attribName,$value)//设置属性值的函数

{

This->$attribName=$value;//设置属性值

}

}

8,类方法的调用:

Class classname

{

Var $myAttrib;

Function func_1($param)//函数func_1

{

代码

}

Function func_2($param1$param2)

{

代码

}

Function func_3($param1$param2)

{

代码

Return backvalue;

}

}

调用以上类的3个函数:

$newclass->func_1(“123”);

$newclass->func_2(“123”,”abc”);

$myvalue=$newclass->func_3(“123”,”abc”);//调用func_3并获取返回值。

9,有关类的代码:

$this通过该指针可能方便的访问类属性或是给类属性赋值。class Employee//创建一个类“Employee”

{

var $empno;// 员工人数//定义类的属性

var $empnm;// 员工姓名

function add_employee($in_num, $in_name)//创建类的方法为“add_employee”

{

$this->empno = $in_num;//给类的属性赋值

$this->empnm = $in_name;

}

function show()//创建类的方法为“show”

{

echo “$this->empno, $this->empnm”;//输出属性值

return;

}

function changenm($in_name)

{

$this->empnm = $in_name;}

}

$sbabu = new Employee;

篇3:php总结性学习笔记

现代社会里,随着科学技术的发展,使得人们生活的方方面面都有了很大的提高。尤其是在教学方面,近年来涌现了许多新的教学模式,比如网上教学,网考等。特别对于物理的学习,只利用课上的40分钟时间是远远不够的,还应该在课下对于学习过程中的一些疑问跟老师进行探讨,使学生对自己不懂的问题得到很快解决,不会拖沓到以后; 同时, 老师对于学生哪些地方相对薄弱也会充分掌握,日后教学有针对性的辅导起了重要的作用,极大地提高了学生们的物理学习效率以及师生之间的交流。 结合PHP网站编程技术,构建物理学习网络教育系统是研究网络教育的一个热点,PHP + Apache + My SQL平台被誉为黄金组合,它不仅具有全部开源、速度快、可移植性强的特点,还符合低成本、可扩展性强的需求,因此本文将PHP + Apache + My SQL作为技术热点,描述物理学习网站系统模块的设计过程,分析了各个功能模块并给出了部分数据库操作的程序代码,为此构建一个基于PHP物理学习网的教育学习系统。

1系统分析

1. 1系统结构分析

本文论述的大学物理学习网站系统主要针对两大类用户: 学生和教师。学生是该网页的主要用户, 通过做这个网页方便学生们,希望他们借助网络,解决自己学习上的问题,让学习变得轻松些; 对于教师来说也是一种改革,有知识的传播者变为发布者和组织者,使得知识结构也变得充满个性化。

目前最主要的应用软件是Web浏览器,本文所研究的物理学习网页系统采用B /S( Browser/Server) 系统结构,只要可以接入网络,通过任意浏览器就可以进行学习。网络教育系统是以集中服务器的工作方式进行的,由于服务器集中了整个系统的模块管理、数据库操作、资源分配等调配工作,这就使得客户机之间更易于配置。服务器端仅需要几台设备,通过B /S系统结构,就能够改善整个系统的运行效率,大大提高了服务器的处理能力,同时客户机上仅安装一个浏览器,例如IE或者Firefox等浏览器,浏览器就可以通过Web服务器与数据库进行交互。这样对于学生们来说不需要安装任何软件,只需打开浏览器就可以访问系统网页。

1. 2开发语言选择

PHP ( Hypertext Preprocessor )[1]是超级文本预处理语言,被广泛应用的开放源代码的嵌入式脚本语言,它可嵌入到HTML中,尤其适合开发Web后台程序[2]。PHP是生成动态网页的工具之一,特点有: PHP作为开源的服务器脚本语言,人们可以从PHP官方站点自由下载; PHP支持多操作平台,在大多数Unix平台,GUN/Linux和微软Windows平台上均可以运行; PHP的语言简单,它是在Java、C、 Perl的基础上开发出来的,使得学习起来较简单。

在网站开发中,比较受欢迎的是PHP + My SQL的这种搭配 方式,因为PHP非常支持My SQL, My SQL数据库都是PHP中大量的标准内置函数来操作的[3]。PHP操作My SQL数据库十分方便和高效,而这种PHP + My SQL的Web开发语言与数据库搭配也是当今最常用的一种搭配[4]。

1. 3数据库选择

网站开发中较为重要的构件之一就是数据库系统,网页上的许多内容都是从数据库得到的。本文选择My SQL数据库管理系统,因为它是一个最受欢迎的开源数据库,可以从网上免费下载、安装。与此同时,依据自己的需求来对源代码进行修改,开发出适合自己的程序[5]。

My SQL具有使用方便、多线程技术和强大的处理功能等,另外支持多种语言编写程序,以及支持多种不同的操作系统。由于My SQL的快速性和便捷性使得它特别适用于Web站点或者软件的数据库后端开发。

由于物理学习网系统的数据都要存放在数据库中,因此数据表的设计是数据库的重点,数据库设计的是否合理直接影响系统运行和维护。在设计开发平台之前就规划好每个数据表,完成数据的存储。

根据设计要求创建一个数据库,取名字为login。然后分析要存入数据库里的字段,建立表。由于要登陆、存问题内容以及存回复问题内容,所以建立3个表,分别命名为user_login、asktb和replytb。 user_login数据表的主要目的就是保存用户信息( 账号、密码、邮箱等) ,用来登陆、修改密码、忘记密码等功能; asktb数据表主要存放所以问题,其中包括发表问题的用户名、问题的标题、问题内容以及时间; replytb数据表主要存放针对asktb中问题的回复内容,通过其字段ask_id与asktb的字段id相关联,详细内容有回复人名字、回复内容和时间。具体数据表如图1所示。

1. 4服务器的选择

Apache是目前应用最广的Web服务器之一,最开始是由伊利诺大学香槟分校的国家超级电脑应用中心开发出来的,经过人们的使用和研发,几乎所有的计算机平台都可以应用,由于其跨平台和安全性被广泛使用[6]。它的优势主要在于它的源代码开放、有一支开放的开发队伍、支持跨平台的应用( 可以运行在几乎所有的Unix、Windows、Linux系统平台上) 以及它的可移植性等方面[7]。Apache性能稳定、速度快,在全球超过半数的网站中已经被使用, 许多热门网站都是用Apache架设的。

Apache服务器与IIS服务器的特点比较[8]:

( 1) Apache是一个跨平台的且免费Web服务软件,可以运行在Unix、Windows、Linux等系统平台上,包括一些终端设备的用户交互接口很多都使用了Apache。

IIS( Internet Information Services,互联网信息服务) 是由微软公司提供的基于运行Microsoft Windows的互联网基本服务。最初是Windows NT版本的可选包,随后内置在Windows 2000、Windows XP Professional和Windows Server 2003一起发行,但在普遍使用的Windows XP Home版本上并没有IIS。

( 2) Apache服务器完全拥有对外开放源代码,任何人都可以分析并修改,使其漏洞更少,功能更强大。

IIS服务器没有开放源代码。

( 3) Apache能够很好的支持ASP、PHP、JSP等语言。

IIS服务器对asp. net支持,而对PHP和JSP语言的支持性不好。

2系统设计

2. 1功能结构设计

物理学习网平台的开发工具是Dreamweaver网页制作工具、Windows操作系统以及采用Apache系统的运行模式,这样的一个开源的、安全的平台为网页提供了一定的技术支持。网页功能描述如图2所示: 物理学习网教学平台主页设5个一级模块,分别是登陆界面、新闻概览、资源搜索、学习交流和上传课件; 其中资源搜索下设3个二级模块,分别是百度搜索、搜狗搜索和谷歌搜索。登陆界面主要是指新用户或者老用户在进入主页时候根据自己的账号密码进入学习网主页进行学习; 新闻概览模块使用户可以自己浏览有关于物理各个方面的信息; 资源搜索可以通过三大搜索引擎进行在线搜索相关信息; 学习交流模块是学生把问题及难题上传至该平台, 老师会及时答复相关问题,便于学生更好地掌握知识; 上传课件是老师把一些复习资料和课件上传到网站上,使得学生可以自行下载,所有的文档资料都为Word2003、Excel2003、Power Point2003版。

如图3所示,进入主页的上方,是一幅“月牙和星星”图片,图片上显示“物理学习网”五个美术字体,以及下面有四个栏目和各自的功能介绍。

本系统主要作用是让老师在学生学习过程中起了很好引导作用,通过物理学习网页,给学生提供更多辅助和保证。学生结合自己的情况进行知识点的学习或者对疑难问题进行师生之间相互探讨,与此同时,还可以依据课程的构架,了解课程的主体结构; 也可以通过一些解答问题的知识点,来理解课程的综合应用; 本系统根据实际需要,设置学习交流模块,学生能在此区域中进行相关知识的交流研讨,让学生更好地学习和应用知识。

2. 2登陆界面设计

在进入主页前要进入登陆界面,如图4所示,老用户通过登录界面进行登录,而新用户则应先进入注册页面完成用户注册,再进入登录界面进行登录。 用户输入用户名和密码后点击登录系统,数据库会将表单中的数据提交到数据中心进行处理。首先在数据中心查询表单中提交的用户名和密码是否存在,如果用户名和密码没有在数据库中,则会弹出密码或用户名错误的窗口; 如果存在,用户将成功登陆到主页面。当用户登陆到主页面后,数据中心就会依据之前保存到 _SESSION的变量来判断用户身份是否合法,以防止非法用户通过伪造 _SESSION的变量登陆到主页面窃取相关信息。部分数据库的代码为:

注: $login_fail, $login_suceess在文件顶部已经定义好路径及对应文件,header( ) 函数是定时跳转函数,可以给refresh设置时间,让几秒之后跳转到url里的文件中,这里设置0秒。

当用户在登陆界面内填写完相关信息后,点击登录按钮,提交到后台处理,用户登录流程如图5所示。

2. 3学习交流模块功能实现

Study. php是学习交流模块的核心文件,它的功能是实现与数据库的连接,当学生提出一些问题的时候,老师可以通过登录来解答问题。实现学习交流模块流程如图6所示。

该文件的部分数据库代码如下:

3结束语

篇4:“家长学习班”学习笔记分享

为了帮助我们了解自己的感觉,请回答如下问题。

你如何看待自己?你有什么独特的地方么?请列举你的独到之处,你的能力,比如你很有分析问题或持家的能力。然后,请列举你的潜力。“如果我愿意,我可以……”比如,如果我可以很有耐心。最后请列出你奖励自己的方式。如果你做得很好,发挥了你的潜力,你打算如何奖励自己?找些好吃的?还是出去看场电影

请描述你现在的状况。比如:我感觉不好,但不知道是为什么。或者。我总是倒霉的那个。你喜欢你现在这种状况么?你愿意自己现在是什么一种状况呢

别人是怎么看你的?你觉得他们对你的看法是正确的么?

你觉得他们的评价有没有带给你一种不确定的感觉,使你对自己产生怀疑

思考一下你的生活目标。你是不是确立了一个一旦达到就能使你快乐的生活目标?请把这个目标写下来。

如果你还没达到这个目标,你是不是会因此不幸福?你有没有尽力去实现这个目标

如果你还没确立目标,你会不会以吃,喝,抽烟,购物等癖好来填补你的空虚?当你这样做的时候,你有没有一种负罪感

请回忆你自己小时候的角色,比如你是不是总是那个哗众取宠的孩子,你是不是个逆反的孩子,或者是不是一个事事都知道得比别人多的孩子?请仔细想一想。你是不是真的愿意扮演那样一个角色?你是不是还是很希望自己是另一个样子,但是由于某种原因却不敢那样做

请列举你做过的,不讨自己喜欢的事。比如暴饮暴食、害羞、负罪感等等。是不是正是这些事成为你的负担。使你对自己深感不满

篇5:php学习总结

@ 屏蔽错误or die 条件显示

以前学习php类的总结:

1.php中不能重载,但是能用子类覆盖父类的方法名称来实现新的重载

1.1 在子类中调用父类的覆盖部分可以使用 父类名称::方法名称();

2.final 只能定义类和方法,不能使用final定义成员属性,因为final是常量的意思,在php里定义常量使用的是define函数

2.1 final关键字标记的类不能被继承

2.2 final关键字标记的方法不能被子类重写

3.const是一个定义常量的关键字,在php中定义常量使用的是define()函数,但是在类里定义常量使用的是“const” 这个关键字

3.1在程序中不能修改它的值。

3.2 访问const 修饰的成员属性要使用类名,在本类的方法里使用“self”关键字,但不使用“$”符号,也不能使用对象来访问。

4.static关键字可以描述类中的成员属性和成员方法

4.1 static 的成员属于类,而不属于任何对象,4.2 static的成员是在类第一次被加载的时候分配的空间,其他类无法访问的,只对类的实例共享,能一定程度对类该成员形成保护

4.3 静态成员放到了“初始化静态段”,在类第一次加载的时候放入的,可以让堆内存里的每个对象共享。所以在静态方法里,可以使用这个方法所在的类的“类名”,也可以使用“self”来访问其他静态成员。“self”代表这个静态方法所在的类。

4.3.1 在类里的静态方法是不能访问类的非静态成员的。

4.3.2 在类的非静态方法里可以访问静态成员:”self:成员属性“;

4.4类的静态变量,非常类似全局变量,能够被所有类的实例共享,类的静态方法也是一样,类似于全局函数。

4.5 在类内函数访问静态变量时前面加self::静态函数

4.6 静态变量可以在类外直接访问,访问方法是类名::静态变量

4.7 静态函数可以在类外直接访问,访问方式是类名::静态函数

4.8 在类内静态函数访问另一个静态函数时使用 类名::静态函数名

4.8.1 静态函数在类内访问静态变量时,访问方式是类名::静态变量

4.8.2 静态函数在类内访问静态变量时,访问方式除了是类名::静态变量外,还可以使用self::静态变量

4.9 在类内静态函数访问另一个静态函数时除了使用 类名::静态函数名外,还可以使用self::静态函数名,也可以直接调用静态函数

4.10 静态函数内不能访问非静态变量

4.11 在类内静态函数不能使用$this->非静态函数名访问非静态函数,可以使用self::非静态函数名

4.12

5.类里的”$this“,在php里面提供了一个本对象的引用$this,每个对象里面都有一个对象的引用$this来代表这个对象,完成对象内部成员的调用。

5.1 $this 就是对象内部代表这个对象的引用。

6.类里“self”,self 和$this相似,只不过self是代表这个静态方法所在的类,所以在静态方法里,可以使用这个方法所在的类的”类名“,也可以使用“self”来访问其他的静态成员,通常使用后者”self::成员属性“。

7.类里”__“开头的函数名

7.1类里”__“开头的函数名都是在某一时刻不同情况下自动调用执行的方法。

7.2__toString()方法也是自动被调用,是直接输出对象引用时自动调用的。比如“$p = new Person()”,直接用echo输出$p会产生错误,如果在类里定义了__toString()方法,再用echo直接输出对象引用的时候就不会产生错误了

8.对象串行化

8.1 __sleep()方法,在对象串行化的时候,会调用一个__sleep()方法来完成一些睡前的事情,__sleep()函数不接受任何参数,但返回一个数组,其中包含需要串行化的属性。未被包含的属性降在串行化时被忽略,如果没有__sleep()方法,php将保存所以属性.8.2 __wakeup()方法,在重新醒来时,即由二进制串重新组成一个对象的时候,则会自动调用__wakeup(),做一些对象醒来就要做的动作。

8.3 有时你可能需要一个对象在反串行化后立即执行.为了这样的目的,PHP会自动寻找__sleep和__wakeup方法.9.protected 成员能被同个类中的所有方法和继承出的类的中所有方法访问到,不能被父类的实例直接访问。protected and public 可以动态绑定

10.private 大部分private属性仍然可以被外部代码共享.解决方法是用一对public方法,一个是get(获取属性的值),另一个是set(设置属性的值).10.1private 不可以动态绑定。Private成员只存在于它们所在的类内部.不像public和protected成员那样,PHP模拟静态绑定.10.2 什么时候用到private?private成员只有当你不想让子类继承改变或特殊化父类的行为时才用到,这种情况比你想像的要少,通常来说,一个好的对象分层结构应当允许绝大多数功能被子类特殊化,改进,或改变—这是面向对象编程的基础之一。一定的情况下需要private方法或变量,例如当你确信你不想允许子类改变父类中的某个特定的部份。

11.抽象类:抽象方法是就像子类中一般的方法的占位符(占个地方但不起作用),它与一般方法不同—没有任何代码.如果类中存在一个或更多抽象方法, 那么这个类就成了抽象类.你不能实例化抽象类.你必须继承它们,然后实例化子类.你也可以把抽象类看成是子类的一个模板.如果你覆写所有的抽象方法, 子类就变成一个普通的类.如果没有覆写所有方法, 子类仍是抽象的.如果一个类中中包含有抽象方法(哪怕只有一个), 你必须声明这个类是抽象的, 在class关键字前加上abstract.声明抽象方法的语法与声明一般方法不同.抽象方法的没有像一般方法那样包含在大括号{}中的主体部份,并用分号;来结束.12.接口:如果你建立了一个只有抽象方法的类,你就定义了一个接口(interface).为了说明这种情况, PHP中有interface 和implements关键字.你可以用interface来代替抽象类, 用implements来代替extends来说明你的类定义或使用一个接口.例如, 你可以写一个myClass implements myIterface.这两种方法可以依个人偏爱来选择.12.1 如果接口中出现非抽象方法.会报错

12.2 接口中的方法默认是public 型的.其它类型的修饰符,不能修饰接口中的抽象方法.12.3 即使接口中所有的方法都是抽象方法,也不能使用 abstract 修饰.也不能用final

12.4 即使接口中所有的方法都是抽象方法,在接口中,可以声明静态方法.12.5 在接口中可以有常量,e.g.:

interfaceUser{

const MAX_GRADE = 99;

function getName();

function setName($_name);

}

?>

13.Namespace关键字给一块代码命名.在这个代码块外部,脚本必须用操作符::加上命名空间的名称来引用这个代码块.引用静态的类成员也是用相同的方法.在命名空间内代码不需要声明命名空间, 它本身就是默认的.这种方法比添加前缀的方法好.你的代码可由此变得更加紧凑和可读.你可能想知道是否可以建立分层的(嵌套的)命名空间.答案是不可以.但你可以在命名空间名称后加上冒号, 你可以再次调用在名称中不包含冒号的变量,函数和类.命名空间允许存在冒号,只要不是第一个字符和最后一个字符或接着另一个冒号.命名空间的名称中的冒号对于PHP来说没有任何意义, 但如果你用他们来区分逻辑上的区块, 他们可以很好地说明你的代码中的父子(parent-child)关系.14.__toString()打印对象会调用它的__toString方法.15.不能实例化的类

//

//当__construct()为public时可以实例化

class A{

private function __construct(){}

}

$a = new A();//fail

?>

15.1

//static的方法留给外部访问.

class A{

private function __construct(){}

static function getClassA(){

return “这里是后门,可以通过这里进入类内部..”;

}

}

echo A::getClassA();

?>

15.2

//不能用new实例化的类.

//static的方法留给外部访问.

//在方法内部返回实例.

class A{

private function __construct(){

echo “this is construction
n”;

}

static function getClassA(){

$a = new A();

return $a;

}

}

// 看到这里确实返回的是 A 的实例.但不是同一个对象.$a1 = A::getClassA();

$a2 = A::getClassA();

echo “$a1 的类是 ”.get_class($a1).“ , $a2 是 ”.get_class($a1);if($a1 === $a2){

echo “
$a1 $a2 指向同一对象.”;

}else{

echo “
$a1 $a2 不是一个对象.”;

}

//this is construction

//this is construction

//$a1 的类是 A , $a2 是 A

//$a1 $a2 不是一个对象.?>

15.3

//不能用new实例化的类.
//static的方法留给外部访问.
//在方法内部返回实例.

//定义静态属性保证这个实例能被静态方法调用.

//增加判断部分.

class A{

private static $a = null;

private function __construct(){}

static function getClassA(){

if(null == self::$a){

self::$a = new A();

}

return self::$a;

}

}

// 看到这里确实返回的是 A 的实例.但不是同一个对象.$a1 = A::getClassA();

$a2 = A::getClassA();

echo “$a1 的类是 ”.get_class($a1).“ , $a2 是 ”.get_class($a1);if($a1 === $a2){

echo “
$a1 $a2 指向同一对象.”;

}else{

echo “
$a1 $a2 不是一个对象.”;

}

//$a1 的类是 A , $a2 是 A

篇6:php总结性学习笔记

3、《返回顶部》功能的实现

4、PHP 页面输出乱码解决方法

1、需要注意的是表名、字段名均不需要引号/。

比如我创建这样一个表

CREATE TABLE people(peopleid SMALLINT NOT NULL, name CHAR(50)NOT NULL);

我要为peopleid添加一个auto_increment 让他自动整长,开始mysql总是报1075错误;于是查了一下关于mysql 1075的错误,错误:1075 SQLSTATE: 42000(ER_WRONG_AUTO_KEY)

消息:不正确的表定义,只能有1个auto列,而且必须将其定义为 键。这是才明白 原来需要先添加一个主键

alter table people add primary key(peopleid);

alter table people change peopleid peopleid smallint auto_increment;

这样就成功了

那么,如果我们不添加主键呢?? 是不是就不可以了,当然不是 如果没有主键的话,我们这样也可以

alter table people change peopleid peopleid smallint auto_increment unique;

这样也是可以的,这里应该有一个注意,我刚开始的时候每次都没有修改都没有表明字段类型,总是报错,切忌要声明字段的类型.2、网页可见区域宽:document.body.clientWidth

网页可见区域高:document.body.clientHeight

网页可见区域宽:document.body.offsetWidth(包括边线的宽)网页可见区域高:document.body.offsetHeight(包括边线的宽)网页正文全文宽:document.body.scrollWidth

网页正文全文高:document.body.scrollHeight

网页被卷去的高:document.body.scrollTop

网页被卷去的左:document.body.scrollLeft

网页正文部分上:window.screenTop

网页正文部分左:window.screenLeft

屏幕分辨率的高:window.screen.height

屏幕分辨率的宽:window.screen.width

屏幕可用工作区高度:window.screen.availHeight

屏幕可用工作区宽度:window.screen.availWidth

HTML精确定位:scrollLeft,scrollWidth,clientWidth,offsetWidthscrollHeight: 获取对象的滚动高度。

scrollLeft:设置或获取位于对象左边界和窗口中目前可见内容的最左端之间的距离

scrollTop:设置或获取位于对象最顶端和窗口中可见内容的最顶端之间的距离

scrollWidth:获取对象的滚动宽度

offsetHeight:获取对象相对于版面或由父坐标

offsetParent 属性指定的父坐标的高度

offsetLeft:获取对象相对于版面或由

offsetParent 属性指定的父坐标的计算左侧位置

offsetTop:获取对象相对于版面或由 offsetTop 属性指定的父坐标的计算顶端位置

event.clientX 相对文档的水平座标

event.clientY 相对文档的垂直座标

event.offsetX 相对容器的水平坐标

event.offsetY 相对容器的垂直坐标

document.documentElement.scrollTop 垂直方向滚动的值

event.clientX+document.documentElement.scrollTop 相对文档的水平座标+垂直方向滚动的量

IE,FireFox 差异如下:

IE6.0、FF1.06+:

clientWidth = width + padding

clientHeight = height + padding

offsetWidth = width + padding + border

offsetHeight = height + padding + border

IE5.0/5.5: clientWidth = widthborder

offsetWidth = width

offsetHeight = height

(需要提一下:CSS中的margin属性,与clientWidth、offsetWidth、clientHeight、offsetHeight均无关)

文章转自|

3、返回顶部返回顶部

#包含了一个位置信息

默认的锚是#top 也就是网页的上端

4、PHP 页面输出乱码解决方法

以前同事问我关于乱码的问题,乱码也分很多种,数据库乱码、页面提取数据乱码,而其他显示正常,phpmyadmin显示也是正常的等等,MySQL对中文的支持程度还是很有限的,尤其是新手,但凡出现乱码问题,就会头大。他的问题如下。

标题:mysql设置utf8_unicode_ci字符集php页面输出??乱码的解决方法

摘要:用PHPmyAdmin操作MySQL数据库汉字显示正常,但用PHP网页显示MySQL数据时所有汉字都变成了?号

乱码问题1:用PHPmyAdmin操作MySQL数据库汉字显示正常,但用PHP网页显示MySQL数据时所有汉字都变成了?号。

症状:用PHPmyAdmin输入汉字正常,但当PHP网页显示MySQL

数据时汉字就变成了?号,并且有多少个汉字就有多少个?号。

原因:没有在PHP网页中用代码告诉MySQL该以什么字符集输出汉字。

解决方法:

1.网页文件head设置编码

2.PHP页面在保存的时候使用utf-8编码保存,可以用记事本或convertz802转换文件

3.在MYSQL中新建数据库的时候数据库 选择UTF-8编码既字符集 设定为 utf-8_unicode_ci(Unicode(多语言), 不区分大小写),库里面 表table的 整理 设置为 utf-8_general_ci

表里面的每个字段的 整理 都设置为 utf-8_general_ci

4.在PHP连接数据库的时候,也就是mysql_connect()之后加入//设置数据的字符集utf-8

mysql_query(“set names ’utf8’ ”);

mysql_query(“set character_set_client=utf8”);

mysql_query(“set character_set_results=utf8”);后两句可以不需要

注意是utf8,不是utf-8。

如果你的网页编码是gb2312,那就是 SET NAMES GB2312。但编辑员强烈推荐网页编码、MySQL数据表字符集、PHPmyAdmin都统一使用UTF-8。

以上四点即可实现全站utf-8编码,而且在数据库中也不会有中文乱码。乱码问题2:用PHPmyAdmin输入数据时发生错误,不让输入或出现乱码

解决方法:这是设置问题。请安装最新版PHPmyAdmin或Appserv,打开PHPmyAdmin,MySQL 字符集: UTF-8 Unicode(utf8); MySQL 连接校对应该为utf8_unicode_ci;创建新的数据库时整理一栏请也选成utf8_unicode_ci。网页字符集也最好选用utf-8。utf-8是国际标准编码,是趋势。

乱码问题2:在本机开发好的MySQL数据表,在本机测试一切正常,但用网站空间商提供的PHPmyAdmin上传时却出现问题,上传失败。尤其是使用国外PHP空间。

上一篇:中考语文古诗文名句填空题下一篇:药师述职报告范文