一个关于PHP面向过程和面向对象的问题

如果做一个网站,做完后,希望日后的功能,可以用功能模块的形式来添加该网站的功能。这样编程风格是面向过程还是对象呢?或者说,面向过程能实现么?如果用面向过程做一个功能多、比... 如果做一个网站,做完后,希望日后的功能,可以用功能模块的形式来添加该网站的功能。这样编程风格是面向过程还是对象呢?或者说,面向过程能实现么?

如果用面向过程做一个功能多、比较大的网站,缺点多不多?

像织梦那种封一个PHP标记,只需要写这个标记,就能输出文字、链接,这是过程还对象呢?过程能这样封一个类似于JS的函数的标记么?

网上有的文章说,面向对象的重用性好,这个重用性,是不是指的就是比如说我输出的新闻列表,这个列表扔到其它页面,同样可以使用?

请高手赐教啊!
展开
 我来答
匿名用户
推荐于2017-11-26
展开全部

面向对象,是把一些常用的操作进行类封装起来,方便调用,需要用的地方,调用一下即可,这样,开发方便,维护也方便!修改这个封装的类,即可达到修改全站的目的!

面向过程,是在每一个地方都使用单独的代码进行操作,这样开发的时候重复累赘,维护的时候也很累,你修改了哪里,就只在哪里起作用!

比如,初学php,最基本的连接数据库和查询数据库都会这样写:

<?php
 $Con = mysql_connect(.........);
 mysql_query('set names utf8');
 mysql_select_db(....);
 
 $query = mysql_query( $sql );
 while( $Rs = mysql_fetch_aray( $query ) ) {

  echo $Rs[0]; 
 }

等等这样,操作10次数据库,就写10次这样的代码!

而如果封装一个类,意义就不同了!

<?php
 class mysql{

   var $Con;
   var $table; 
   public ConnEct( $local, $root, $pass, $base, $code){

    $this -> Con = mysql_connect( $local, $root, $pass);
    mysql_query('set names ' . $code);
    mysql_select_db( $base );
        
   
   }      
   
  public Tab( $Table) {


   $this -> table = $Table;
   return $this;   
  }    

  public Select(){

    $rs = mysql_query('select * from ' . $this -> table)
    while( $Rs = mysql_fetch_array( $rs ) {
      $Rule[] = $Rs; 
    }  
     
  return $Rule; 
  }    
 }

把上面的代码保存成一个文件,比如是mysql.php,在需要操作数据库的地方引入这个文件,那么要查询数据库的一个表就非常方便了!

<?php
  include_once 'mysql.php';
  $Mysql = new mysql; //实例化一个类;
  $Mysql -> ConnEct('localhost', 'root', 123456, 'table', 'utf8');//连接数据库
  $Resul = $Mysql ->  Tab('user') -> Select();//查询user表,并返回数组结果
  print_r( $Resul ); //打印这个数组

以上个人见解,仅供参考

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式