第一篇:四川商会php技能培训中心学习总结(一)
四川商会php技能培训中心学习总结
(一)在四川商会培训php学习到今天也是快一个月时间了,然而到今天为止第一个php写的网站已经快要见亮了,中午后台部分全部功能完成意味着以后做别的站可以拿来就用,不用再费太多精力编写了,现在就简单写写学习php的这一个月我遇到的主要问题。问题1:环境搭配
php最经典的组合当然是LAMP(Linux+Apache+MySQL+PHP)了,不过我没有条件和精力弄Linux所以用Windows 2003代替Linux了,自己调试用,又不是做服务器,所以不要求性能足够用了。
本身我的机器是Win2003+IIS+Framework环境能跑起来ASP和.net,并且装有jdk+tomcat+oracle还能跑起来jsp,本打算不破坏这些环境再安装apache和mysql,不过困难重重啊。
于是放弃jsp环境,并且用ghost备份了asp环境,删掉IIS后重新安装PHP环境,环境还是很好搭的,在百度上轻易的找到教程照着安装就可以Apache+PHP+MySQL+PHPMyAdmin,没有安装Zend,以后深入学习的时候再说吧,没有研究明白多个网站的时候怎么存在不同的路径运行在不同端口,也先不管了,现在80端口跑吧,环境调试好了以后备份了一个ghost,算是php环境成功搭起来了。
问题2:对utf-8编码文件的标记BOM导致的页面空行
这个问题以前在学习xhtml+css的时候遇到过,那时候是因为文档声明类型前面加别的代码了或者没有写文档声明类型xhtml1.0却用w3c的标准做页面导致的,起初我以为也是把require写在文档声明前面出的问题呢,后来反复调试发现不是这么简单,后来上百度搜索了很多关于require引起空行的问题,有一个牛人提到了要在dreamweaver里面ctrl+j把utf-8编码的BOM去掉,当时也不懂BOM是啥,说去掉就去掉吧,确实解决问题了,这算是把这一关过去了,不过后面还有utf-8的问题呢,也是跟这个有关系。
问题3:php下checkbox的取值问题
这是我发现php唯一一个不方便的地方,不像asp那样,所有同名的checkbox的值存成一个集合,php只能取同名里最后一个checkbox的值,在做多数据where in(aa,bb,cc,dd)查询的时候很不方便,只能用js+一个hidden input的方法实现,虽然有点小麻烦,不过不是大问题,很容易就解决了,上网查了一下也确实只有这么才能解决!
问题4:Access库转到MySQL的问题
毕竟数据库已经设计好了,再在PHPMyAdmin中建一次表也很麻烦,索性找个软件来直接转库,还不错让我找到各爆好用的软件,不过全英文界面,名字没记住,明天去公司看看再发上来,库很轻松的转过来了,但是我手很贱,看到MySQL里面的data文件夹下有和我建的数据库一样名字的文件夹,我以为有这个文件夹就不用建库倒库了,一时兴起把没用的都删掉了,问题来了PHPMyAdmin连不上库了,这个倒是好解决,重装了一次MySQL解决问题,可是我没备份就换回ASP环境,再换回来的时候MySQL出大问题了,重装都不管用了,上百度一顿神搜,最终csdn的牛人给了答案“把libmysql.dll和php5ts.dll考到system32下”,解决问题。
第二篇:四川商会php技能培训中心学习总结(二)
四川商会php技能培训中心学习总结
(二)问题5:NTFS权限问题。
这个问题ASP上也出现过,不过换在PHP环境就没多一份心往这方面想,所以足足憋了我一上午,发现这个问题是在朋友的服务器上,前一天喝酒正好认识一个哥们儿遇到php建站的问题了,接着酒劲我就装了一把,说我php多牛多牛啊,知道的我才学2星期,哈哈哈,第二天就给人家解决问题吧,牛都吹出去了也不能不管人家,连上服务器一看原来是安装phpcms的时候遇到了MySQL问题安装无法继续进行了,百度上一顿神搜找到问题关键了是NTFS权限问题,这就好解决了,加个Internet来宾用户就解决了,估计自己以后也会遇到这问题,所以早遇到比晚遇到强,关键时候知道怎么回事儿!
问题6:Cookies读写问题。
这个问题应该不是很大的问题,只不过当天马上下班了,没有来得及解决,第二天很轻易的就搞定了,刚开始学习肯定语句掌握的不多,以为$_COOKIE[“xxx”]既可以读也可以写呢,用到这儿的时候才发现部对路子,上网随便一搜“php cookies 写入”答案就来了,setcookie即可,真简单啊。
问题7:php分页。
用ASP的时候SQL语句也没深入研究,根本就不知道limit这回事儿,我说以前看淘宝、百度的分页上有0 20、20 20这样的参数传递呢,都是干分页用的,稍补了一堂SQL课程问题迎刃而解,页数判断那里原理都一样就没当成问题,一路绿灯解决战斗!
问题8:创建utf-8文件写入中文乱码问题,问题2的后续问题。
一开始就把这个功能做好了,只不过没用中文测试,后来做到有中文的地方发现这里不灵了,哎呀那个头疼啊,这个问题收拾了我好几天,一直没解决,为了不被这个问题困扰,所以就先用英文写入把这里条过去了,昨天必须得解决这里了,所以就硬下头皮整吧,还是BOM的签名问题,以下均为我自己理解,不知道对不对,Windows环境识别UTF-8与ANSI文件靠的是UTF-8文件前的一个叫做BOM签名的东西,这个东西普通的文本编辑器是看不到的 xEF xBF xEE好像是这三个16进制字符,反正是三个东西,问题2里毛病也是他们三个整出来的,UTF-8在Windows下虽然要用这三个家伙区分,在php下确实没有用的东西,要不问题2里面为啥要去掉BOM签名呢,怪就怪我在做ASP的时候遇到过同样的UTF-8文件写入中文乱码问题,所以就留了个心眼,先在网上艘了一个UTF-8文件在php写入的函数,里面就把那三个讨厌的东西加进去了,哎呀我去,这就是聪明反被聪明误,这顿调试就是不行啊,后来我也是恍然大悟,把这三个家伙去掉了,问题解决了,那个畅快啊。
还有很多小问题就不细说了,比如$的转义符是chr(36)啊,SQL中的关键词from啊(在asp中不是关键词),时间函数的使用(巨方便,比ASP的用着舒服)。
第三篇: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
//$a1 $a2 指向同一对象.?>
第四篇:培训中心“五个一”活动总结
培训中心“五个一”活动总结
为深入贯彻落实科学发展观,切实加强自身建设,不断提高科室人员素质,增强专业能力,为我矿的发展做出更大贡献,根据集团公司文件要求。我科室组织开展了“五个一”活动。活动取得了一定成效,现将活动总结如下:
一、指导思想
围绕集团确定的发展战略目标,以推行“五个一”活动为抓手,大力营造工作学习化,学习工作化的氛围,引导员工树立全员学习、终身学习的理念,努力掌握和运用科学的新思想、新知识、新经验,深化创新成果学习,促使全体员工的学习不断提升、知识素养不断提高,为实现“绿色山煤、幸福山煤、百年山煤”的共同愿景提供强大的思想保证和智力支持。
二、组织领导
制定了开展“五个一”活动实施方案,有培训中心主任组织学习并亲自授课学习。
三、活动内容和开展情况
(一)每周开展一次培训。我中心每周二集中学习一次培训的专业知识学习,同时做好笔记,不断促使我们掌握本专业最前沿理论和最尖端技术,成为专业工作的行家里手、领导决策的好参谋、服务基层的好帮手。
(二)每月读一本书。为提高我中心人员对各工种的了解,坚持
每月读一本关于各工种的书籍,只有了解工种才能更好的组织培训,用学习来提高我们的工作能力。
(三)每季度进行一次专题讲座。今年以来,根据工作实际,以“干部上讲台、培训到现场”活动为抓手。各科室领导走上讲台,为员工宣讲业务知识,增强员工知识,为推行我矿跨越发展。
(四)每半年进行一次小结。根据我科室业务所需,对一线队组进行走访,了解一线队组的需求和意见,并对所提出的问题进行答复和处理情况记录。并对半年的“五个一”活动开展情况进行总结分析,发现问题并解决,促进我科工作的顺利开展。
(五)每年进行一次评选表彰。积极做好科室学习型先进集体和个人的评选活动。
四、要求
1、要学以致用,把创建学习型企业与推动企业机制创新、管理创新、技术创新结合起来,促进科室工作健康发展。
2、建立有效的学习制度,把创建活动落到实处。
第五篇:PHP学习总结的一些经验
其实我也是一样很新的新手,上PHP100学习视频并在论坛里学习其实也就是一个月前的事.虽然早在8月份花过一个星期看完w3school的PHP教 程,了解了许多PHP知识.但始终是缺乏一个与众多朋友学习和交流的平台,所以一下子在几周后又把PHP又忘得七七八八了,有幸在10月尾了解到了 PHP100视频和论坛,不仅可以系统地学习下PHP,更可以和很多朋友一起学习成长这更是件好事.在php100视频中学到了许多,而 论坛中看帖和回帖也更让我巩固了学习的知识并让我学到了很多,这不仅不会让我又把PHP知识快速忘记(因为工作中用是ASP,而PHP不会在工作中用,所 以忘得快),反而在取得进步的同时,我也能帮助一些人,这也是一样是学习胜利的过程,我喜欢并享受其中.以下是我上论坛以来的回复总结,将不断持续总结.希望有利于与我一样的新手一起成长.首先来个,题前语:
任何的学习,都需要自信,再新的新手也应该抛弃心中的恐惧,有时关键在于你心平下来,踏入学习后,你将慢慢化开迷惑,获得信心,赢取自信!让我们共同进步.----------
==========
Undefined index问题
是运行的时候出现类似:Notice: Undefined index: action in D:wampwww.xiexiebang.com/read.php?tid=15843&page=1#138857
是 php 配置的事情
这个错误是因为 php 页面中的变量没有初始化而导致的!
可以通过设置PHP.INI搞好,也可以在变量前面 加上一个 @ 就可以解决这个地方的问题了!
如这里指示第三行
Notice: Undefined index: action in D:wampwww.xiexiebang.com/2009/0617/6463.php
----------
==========
遇到页面明确提示你错误的,并有显示如何错的,建议先把语句复制部分重点词句或全部语句到百度或
google,更快速让在你排查错误找到方法.其实这也是一种高效有益的学习方法,毕竟在工作中,遇到些没
遇过的新问题,有时都需要借助网上的资源给自己灵感和助力,本人就一天不下几十次用百度搜索.如程序中遇到诸如含提示:
显示的错误为:
Parse error: syntax error, unexpected $end in D:wampwwwtestlist.php on line 21
那么你就可以把 syntax error, unexpected $end 作为关键词到百度搜索,那么你即刻可以得到助力甚
至答案.以上那句举例的错误是因为:短标签没有打开.解决方法是打开php.ini把short_open_tag短标签
打开,重启服务即可
----------
==========
提示的时候,有时顺便把代码帖上帖子是必要的,这样才能快速地在别人的帮助下问题得到解决
----------
==========
对单引号和双引号有迷惑,大家可以看这篇文章解下惑:
----------
==========
在调试程序时,经常要用到echo 你的sql语句来,检查传值后,sql变成了什么样的情况,以便排查错误.----------
==========
向数据库表插入数据
INSERT INTO 语句用于向数据库表添加新纪录。
语法
INSERT INTO table_name VALUES(value1, value2,....)--此种情况是需要按你表中所有字段的顺
序全部value填上!
您还可以规定希望在其中插入数据的列:
INSERT INTO table_name(column1, column2,...)VALUES(value1, value2,....)--张老师明确建
议用此种方法!
----------
==========
有人疑惑,$_POST或$GET取得时的引号问题:其实是要不要引号,单引号或双引号都是没有问题的.如, $_POST[name]和$_POST['name']和$_POST[“name”]都是在windows下一样的,在linux下情况具体没
用过,不知道,还望高手告知.----------
==========
针对多数人的留言板课程中许多问题(如,insert into存不进数据问题)的总结:
1.检查你数据库表的结构是否正确,如id是否设为自增
2.insert into语句是否正确,如单词是否正确,insert into...values...3.是否将`(反斜点,在1键前)号和'(引号)是否使用位置正确,正确的方法是:`应该放在表和字段边,而'
是放在字符串型(或者说是非数字型)的值边上
4.检查你的各语句,是否在结尾将分号(;)正确结束
5.检查你的submit表单项的name值是否你判断的取值,如
value=“提交”>时,你的判断是否提交应是 if($_POST[submit]){...};当你的是
type=“submit” name=“othername” value=“提交”>时,你的判断是否提交应是 if($_POST
[othername]){...}
6.检查你的$_POST是否大写,当你写成$_post是不行的,因为$_GET,$_POST等,都是PHP系统环境的硬性用
法
7.用echo 输出你的sql检查传值情况
8.检查你的短标签是否打开
9.注意你的method是get还是post
10.检查你的表单相关单词或引号是否书写正确.很多莫名其妙的问题,多是细节问题.要小心查对才能看
出来.----------
sql语句中表名和字段名在windows的情况下是可以不加小斜点(键盘左上角1键前的那个点键)的,但听说
在linux中不加会引出些问题,兼容的写法是有小斜点.如:windows下:
$sql=“select * from table ”
和
$sql=“select * from `table` ”
是效果一样的再次重点提示是:
`(反斜点,在1键前)号和'(引号)使用位置,正确的方法是:`应该放在表和字段边,而'是放在字符串型(或
者说是非数字型)的值边
----------
==========
php100第十三讲的page.PHP中的翻页显示信息有问题的解决方法:
因为页面没有取值到URL值的page,所以在函数内的page会一直是1,所以会一直是第1页的数据
解决方法,就是在调用函数前把page取得就好了!函数里会把取到的page值作为全局变量传入函数使用的了!
include(“conn.php”);
$nump=mysql_query(“SELECT * FROM `test`”);
$total=mysql_num_rows($nump);
//调用pageft(),每页显示10条信息(使用默认的20时,可以省略此参数),使用本页URL(默认,所
以省略掉)。
$page=$_GET[page];//------------------------------在这里加入这行就OK了!
_PAGEFT($total,5);
echo $pagenav;
$query=mysql_query(“SELECT * FROM `test` limit $firstcount,$displaypg ”);//---见下面 while($row=mysql_fetch_array($query)){
echo “
”.$row[name].“ | ”.$row[sex];
}
以上的调试方法,其实你只要学下张老师把sql语句输出来看下,你就知道是怎么回事了!
echo $sql=“SELECT * FROM `test` limit $firstcount,$displaypg ”;
$result=mysql_query($sql);
----------
==========
分页有问题的朋友,不妨看下如下:
关于分页,这有一篇论坛朋友的学习心得,学习下,你也许有所得:
另有一篇本人转发上去的分页讲解:
----------
==========
关于:mysql_fetch_array
mysql_fetch_array 调用一次会把指针指向的记录放入数据,并指向下一条记录
======================....回复的太多了,总结又需较多时间,暂时总结到此,总结未完,待续.....