仓酷云

标题: PHP网站制作之PHP中的类-甚么叫类(转载)------ 类... [打印本页]

作者: 小妖女    时间: 2015-2-4 00:25
标题: PHP网站制作之PHP中的类-甚么叫类(转载)------ 类...
实现固定数量的几张图片的上传;再如调试软件ZendStudio的使用,看了很多次老师的应用,但总感觉用的不顺手,不懂那么多的数据值,到底哪一个才是真正的问题所在;还有如数据库语句的封装,我只会用简单的函数来进行封装。   PHP中的类-甚么叫类

Linuxaid 01-03-08 10:16 1594p Wing
--------------------------------------------------------------------------------


  在论述类的概念之前咱们来先说说面向对象编程的概念:面向对象的法式设计(Object-Oriented Programming,简记为OOP)立意于创立软件重用代码,具有更好地摹拟实际世界情况的才能,这使它被公以为是自上而下编程的优越者。它经由过程给法式中到场扩大语句,把函数“封装”进编程所必须的“对象”中。面向对象的编程言语使得庞杂的任务层次明晰、编写轻易。说它是一场反动,不是对对象自己而言,而是对它们处置任务的才能而言。对象其实不与传统法式设计和编程办法兼容,只是局部面向对象反而会使情况更糟。除非全部开辟情况都是面向对象的,不然对象发生的优点还没有带来的费事多。有人能够会说PHP不是一个真实的面向对象编程的言语, PHP 是一个夹杂型 言语,你可使用面向对象编程,也能够利用传统的进程化编程。但是,关于大型项目标开辟,你能够想需求在PHP中利用纯的面向对象编程去声明类,并且在你的项目开辟只用对象和类。跟着项目愈来愈大,利用面向对象编程能够会有匡助,面向对象编程代码很轻易保护,轻易了解和反复利用,这些就是软件工程的基本。在基于Web的项目中使用这些概念就成为未来网站胜利的关头。
  对象(Object)是成绩域或完成域中某些事物的一个笼统,它反应此事物在体系中需求保留的信息和发扬的感化;它是一组属性和有权对这些属性停止操作的一组办事的封装体。 关于对象要从两方面了解:一方面指体系所要处置的实际世界中的对象;另外一方面临象是盘算机不直接处置的对象,而是处置响应的盘算机暗示,这类盘算机暗示也称为对象。复杂的来讲,一团体就是一个对象,一个尺子也能够说是个对象。当这些对象可以用数据直接暗示时,咱们就称他为属性,尺子的器度单元可所以厘米,公尺或英尺,这个器度单元就是尺子的属性。
  在PHP里咱们可以界说一个类,类(Class)就是指变量与一些利用这些变量的函数的纠合。PHP是一种松懈类型的言语,所以经由过程类型重载不起感化,经由过程参数的个数分歧来重载也不起感化。 有时在面向中重载机关函数十分好,如许你可以经由过程分歧的办法创立对象(传递分歧数目的参数)。在PHP中就是经由过程类来完成的。
  在PHP中是经由过程类来完成信息封装的,在PHP中界说类的语法是:
<?php
class Class_name       // 在面向对象编程类中,习气上类的第一个字符为大写,而且必需合适变量的定名划定规矩。
{

//函数与变量的纠合

}
?>
在界说类时你可以按自已的喜欢的格局停止界说,但最好能坚持一种尺度,如许开辟起来会更无效些。
数据成员在类中利用"var"声明来界说,在给数据成员赋值之前,它们是没有类型的。一个数据成员可所以一个整数,一个数组,一个相干数组(Associative Array)或是一个对象。
上面是一个类界说的实践例子:
<?php
class Student
{
var $str_Name; //姓名
var $str_Sex; //性别
var $int_Id; //学号
var $int_English;  //英语成就
var $int_maths; //数学成就
}
?>
这是一个很通俗界说类的复杂例子,用于显示先生的进修成就,类名为Student,Student类包容了一个先生的根基属性:姓名、性别、学号、英语成就和数学成就。
function咱们称之为在类中被界说的函数,在函数中会见类成员变量时,你应当利用$this->var_name,个中var_name指的是类中被声明的变量,不然对一个函数来讲,它只能是部分变量。 咱们先界说一个Input()的函数,用来给实例中的对象赋以初值:
    function  Input ( $Name, $Sex, $Id, $Englis, $Maths)
       {
         $this->str_Name=$Name;
         $this->str_Sex =$Sex;
         $this->int_Id =$Id;
         $this->int_Englis=$English;
$this->int_Maths=$Maths;
       }
如今咱们再界说一个叫“ShowInfo()”的函数,用于打印先生的根基情形:
function ShowInfo()  //界说ShowInfo()函数
    {
echo (“姓名:$this->str_Name<br>
”);
echo (“性别:$this->str_Sex <br>
”);
echo (“学号:$this->int_Id <br>
”);
echo (“英语成就:$this->int_English <br>
”);
echo (“数学成就:$this->int_Maths <br>
”);
    }

而界说好的类则必需利用new关头词来生成对象:
$A_student=new Student;
例如咱们要为一个名为$Wing的对象创立实例,并停止赋值,可使用上面的代码:
$Wing =new Student;  //用new关头词来生成对象
$Wing ->Input (“Wing”,”男”,33,95,87);
//分离输出Wing的姓名、性别、学号、英语成就、数学成就,个中姓名和性别是字符型变量,所以需求用双引号,其它为数值型变量则不需求。
经由过程上面这段完全的源代码,咱们就能够很清晰的看到类在PHP是怎样被应用的:

<?php

class Student
{
var $str_Name;
var $str_Sex;
var $int_Id;
var $int_English;  
var $int_maths;

    function  Input ( $Name, $Sex, $Id, $English, $Maths)
       {
         $this->str_Name=$Name;
         $this->str_Sex =$Sex;
         $this->int_Id =$Id;
         $this->int_English=$English;
$this->int_Maths=$Maths;
}
function ShowInfo()  
    {
echo (“姓名:$this->str_Name<br>
”);
echo (“性别:$this->str_Sex <br>
”);
echo (“学号:$this->int_Id <br>
”);
echo (“英语成就:$this->int_English <br>
”);
echo (“数学成就:$this->int_Maths <br>
”);
    }
   }


  $Wing = new Student;
  $Wing->Input (“Wing”,”男”,33,95,87);
  $Paladin = new Student;
  $Paladin->Input (“paladin”,”女”,38,58,59.5);

$Wing->ShowInfo();
$Paladin->ShowInfo();

?>
  履行了局应是如许的:
姓名:Wing
性别:男
学号:33
英语成就:95
数学成就:87
姓名:Paladin
性别:女
学号:38
英语成就:58
数学成就:59.5

PHP现有的版本较之前的版本在对面向对象编程的撑持方面有了很大的改良,但撑持的还不是很完全,不外现阶段PHP对面向对象编程言语供应的撑持不仅有益于咱们设计法式的布局,关于对法式的保护也能供应很大的匡助。

  不可能吃饭的时候咬了自己一下舌头就从此不吃饭了不是?放下畏惧,继续努力,咱们是来征服它的,而不是被它征服的,振奋起来吧同志。
作者: 再现理想    时间: 2015-2-4 18:53
作为一个合格的coder 编码的规范是必须,命名方面我推崇“驼峰法”,另外就是自己写的代码最好要带注释,不然时间长了,就算是自己的代码估计看起来都费事,更不用说别人拉。
作者: 灵魂腐蚀    时间: 2015-2-8 02:19
我学习了一段时间后,我发现效果并不好(估计是我自身的问题)。因为一个人的精力总是有限的,同时学习这么多,会导致每个的学习时间都得不到保证。
作者: 老尸    时间: 2015-2-10 10:42
其实没啥难的,多练习,练习写程序,真正的实践比看100遍都有用。不过要熟悉引擎
作者: 再见西城    时间: 2015-3-1 09:12
作为一个合格的coder 编码的规范是必须,命名方面我推崇“驼峰法”,另外就是自己写的代码最好要带注释,不然时间长了,就算是自己的代码估计看起来都费事,更不用说别人拉。
作者: 山那边是海    时间: 2015-3-1 20:21
使用 jquery 等js框架的时候,要随时注意浏览器的更新情况,不然很容易发生框架不能使用。
作者: 深爱那片海    时间: 2015-3-12 21:51
实践是检验自己会不会的真理。
作者: 小女巫    时间: 2015-3-20 03:11
我还是推荐用firefox ,配上firebug 插件调试js能省下不受时间。谷歌的浏览器最好也不少用,因为谷歌的大侠们实在是太天才啦,把一些原来的js代码加了一些特效。
作者: 飘灵儿    时间: 2015-3-28 22:04
兴趣是最好的老师,百度是最好的词典。
作者: 乐观    时间: 2015-4-5 16:18
本人接触php时间不长,算是phper中的小菜鸟一只吧。由于刚开始学的时候没有名师指,碰过不少疙瘩,呗很多小问题卡过很久,白白浪费不少宝贵的时间,在次分享一些子的学习的心得。
作者: 变相怪杰    时间: 2015-4-6 00:12
有位前辈曾经跟我说过,phper 至少要掌握200个函数 编起程序来才能顺畅点,那些不熟悉的函数记不住也要一拿手册就能找到。所以建议新手们没事就看看php的手册(至少array函数和string函数是要记牢的)。
作者: 因胸联盟    时间: 2015-4-26 02:12
首推的搜索引擎当然是Google大神,其次我比较喜欢 百度知道。不过搜出来的结果往往都是 大家copy来copy去的,运气的的概率很大。
作者: admin    时间: 2015-4-26 10:00
曾经犯过一个很低级的错误,我在文件命名的时候用了一个横线\\\\\\\'-\\\\\\\' 号,结果找了好几个小时的错误,事实是命名的时候 是不能用横线 \\\\\\\'-\\\\\\\' 的,应该用的是下划线  \\\\\\\'_\\\\\\\' ;
作者: 简单生活    时间: 2015-5-3 20:31
不禁又想起那些说php是草根语言的人,为什么认得差距这么大呢。
作者: 飘飘悠悠    时间: 2015-5-4 18:42
我还是推荐用firefox ,配上firebug 插件调试js能省下不受时间。谷歌的浏览器最好也不少用,因为谷歌的大侠们实在是太天才啦,把一些原来的js代码加了一些特效。
作者: 莫相离    时间: 2015-5-5 17:34
在我安装pear包的时候老是提示,缺少某某文件,才发现 那群extension 的排列是应该有一点的顺序,而我安装的版本的排序不是正常的排序。没办法我只好把那群冒号加了上去,只留下我需要使用的扩展。
作者: 第二个灵魂    时间: 2015-5-7 15:42
为了以后维护的方便最好是代码上都加上注释,“予人方便,自己方便”。此外开发文档什么的最好都弄齐全。我觉得这是程序员必备的素质。虽然会消耗点很多的时间。但是确实是非常有必要的。
作者: 小妖女    时间: 2015-6-17 20:17
学好程序语言,多些才是王道,写两个小时代码的作用绝对超过看一天书,这个我是深有体会(顺便还能练打字速度)。
作者: 透明    时间: 2015-6-19 12:07
最后介绍一个代码出错,但是老找不到错误方法,就是 go to wc (囧),出去换换气没准回来就找到错误啦。




欢迎光临 仓酷云 (http://www.ckuyun.com/) Powered by Discuz! X3.2