我就是呀~~要是不用oop~~那可真的落伍了~~~  :)
不过用过之后~~你就会发现它的好了

解决方案 »

  1.   

    如果要用oop写 PHP,最好的办法是使用 phplib提供的库,不过千万不要用其中
    的session部分,有问题的 :-)
      

  2.   

    我们一直在用,有一些不同的地方,例如标准的oop里面属性必须通过方法调用,而php里面可以直接读取,如果每一个属性都要写方法调用的话,由于没有很好的开发工具,会很烦。干脆直接调用的好
      

  3.   

    我一直用
    特别是数据库处理部分另外,自己在平常的积累中,积累了一些好的Class和function
      

  4.   

    hellophpOOP即面向对象编程cgreen俺想要...
      

  5.   

    用phplib的兄弟们,我们在csdn上合作开一个专题,详细整理
    phplib的资料,加入自己的方法和思想,以及收集到得好的class和func
    如何?各位。
      

  6.   

    我现在也是部分用了OOP,部分不是,感觉有点想写VB,有点杂,现在我们项目几个人做的,说实话用的还是老一套,除了数据库方面,用类写的代码不多。
      

  7.   

    呵呵,我只将phplib中的部分经典函数拿出来用,其他的自己写,其实php很灵活,许多是写成模块的效果就和oop相同,而把这样的写成oop就很麻烦了,贴个小程序作为论据,呵呵:
    <?php
    //*********************************************
    //       名称: 数据操作程序 v 1.0
    //       脚本: php 4.0.6
    // 数据库: mysql 3.23.41
    //       制作: [email protected]
    // 完成: 2001-9-17 17:50
    // 备注: 此程序中的翻页算法通用于所有数据库
    // 更换数据库只需更换php数据库函数
    // 需要自己定制的变量注释后面有" * "
    //       Copyright By 开花石头 ◎ 2001
    //*********************************************
    mysql_connect('localhost','root','');
    mysql_select_db('cngift');//所操作的表名*
    $table_name = "cngift_test";//处理删除程序
    if(isset($cngift[0])){
    for($i = 0;$i<sizeof($cngift);$i++){ $Del_Sql = "Delete from ".$table_name." where ".$sign_value."='$cngift[$i]'";
    mysql_query($Del_Sql);

    }
     echo "<script>alert('共删除了".$i."条数据!')</script>";
    }//显示列表数目*
    $NUM_OF_1_PAGE = 2;
    $num_of_pages = 0 ;
    $current_page = 0;
    //定义列表的表头(注:$table_title和table_value的顺序一定不能错)*
    $table_title = array("编号","品名","单价");//定义列表显示内容的数据库字段名(注:select的值不一定都要显示)*
    $table_value = array("id","name","money");//定义显示列表的sql语句,倒叙不要写在这里,后面设定*
    $sql = "select id,name,money from cngift_test";//当需要倒叙显示数据时请填写倒叙的数据库字段*
    $flashback = "id";//定义sql语句中where后面的条件语句,字串中不需要写where*
    //当需要id='$id'时,直接写$where = "id='$id'"*
    $where = "name like '%test%'";//定义select中的条件变量作为计算翻页时的传递变量*
    //如果$where = "id='$id' and name='$name'"*
    //则$impress = "id='$id'&&name='$name'";*
    $impress = "";//定义进行数据操作中的参数值,一定是sql中取到的有唯一值的字段*
    $sign_value = "id";//处理一般列表
    if($where != ""){

    $sql = "select * from ".$table_name." where ".$where;
    }//处理搜索
    if($search_select != ""&&$search_value != ""){

    $sql = "select * from ".$table_name." where ".$search_select." like '%".$search_value."%'";

    if($where != ""){

    $sql = "select * from ".$table_name." where ".$where." and ".$search_select." like '%".$search_value."%'";
    }}//处理sql语句倒叙
    if($flashback != ""){
    $sql.= " order by ".$flashback." desc";
    }
    $query = mysql_query($sql);

    //翻页处理程序
    $num_of_rows=mysql_num_rows($query);//设置起始位置
    if(!$start_num){$start_num=0;}
     ($num_of_rows - $start_num)>$NUM_OF_1_PAGE? $num_of_rows_on_current_page =$NUM_OF_1_PAGE:$num_of_rows_on_current_page = $num_of_rows - $start_num;
    $next_page = $start_num + $NUM_OF_1_PAGE;
    $previous_page = $start_num - $NUM_OF_1_PAGE;if($next_page>=$num_of_rows){$next_page=$start_num;}
    if($previous_page<=0) {$previous_page=0;}$last_page = $num_of_rows%$NUM_OF_1_PAGE;
    if($last_page==0){$last_page = $num_of_rows - $NUM_OF_1_PAGE;}
    else{$last_page = $num_of_rows - $last_page;}
            
    //所有的页
    $num_of_pages = (int)($num_of_rows/$NUM_OF_1_PAGE)  ;
    if($num_of_rows%$NUM_OF_1_PAGE !=0 ) $num_of_pages++;

    //当前页
    $current_page = (int)($start_num / $NUM_OF_1_PAGE) +1 ;
    if($start_num % $NUM_OF_1_PAGE !=0) $current_page ++;$table_title_num = sizeof($table_title);
    $table_value_num = sizeof($table_value);
    ?><html>
    <head>
    <title>数据操作程序 v 1.0</title>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
    <script language="JavaScript">
    function SelectAll(){
    var items = document.cngift.elements[0];
    for(var i=0;i<document.cngift.elements.length;i++){
    if(document.cngift.elements[i].type != "checkbox"){
    continue;}
    items = document.cngift.elements[i];
    if(items.name = 'cngift[]')
    items.checked = true;
    }
    }
    function doSelect(frm)
    {
    if(frm.c.checked == "")
    {
    frm.a.readOnly = true;
    }else{frm.a.readOnly = false;}
    }
    </Script>
    </head><body bgcolor="#FFFFFF">
    <form method="post" action=<?=$PHP_SELF?> name="cngift">
      <table width="350" border="1" bordercolorlight="#000000" bordercolordark="#FFFFFF" cellpadding="0" cellspacing="0">
        <tr>
        <?php
         //表头处理
         for($i=0;$i<$table_title_num;$i++){
        ?>
          <td height="20"> 
            <div align="center"><font size="2"><?=$table_title[$i]?></font></div>
          </td>
        <?}?>
          <td height="20"> 
            <div align="center"><font size="2">维护操作</font></div>
          </td>
        <tr>
        <?php   
         @mysql_data_seek($query,$start_num);
            for($j=0;$j<$num_of_rows_on_current_page;$j++)
            {
         //内容列表
         $rs = mysql_fetch_array($query);
         for($i=0;$i<$table_value_num;$i++){
        ?> 
          <td height="20"> 
            <div align="center"><font size="2"><?=$rs[$i]?></font></div>
          </td>
          <?php
           }//for end
      ?>
          <td> 
            <div align="center"> <font size="2"> 
              <input type="checkbox" name="cngift[]" value=<?=$rs[$sign_value]?>>
            </font></div>
          </td>
        </tr>
          <?php
    }//for end
          ?>    <tr> 
          <td colspan="4"> 
            <div align="center"> 
             <input type="hidden" name="start_num" value=<?=$start_num?>>
             <input type="hidden" name="sign_value" value=<?=$sign_value?>>
             <input type="hidden" name="search_value" value=<?=$search_value?>>
             <input type="hidden" name="search_select" value=<?=$search_select?>>
                <input type="submit" name="Submit" value="删除" onClick="return confirm('你真的要删除所选信息?!');">
       <input type=button value=全选 onClick='SelectAll()'>
       <input type=reset value=全不选>
       <input type=button value=版权信息 onClick="return confirm('数据操作程序 v 1.0\n\nCopyright By 开花石头 ◎ 2001\n\nEmail:[email protected]');">
            </div>
          </td>
        </tr>
        <tr> 
          <td colspan="4"> 
            <div align="center"><font size="2">| 
    <?if($current_page != 1){echo "<a href=$PHP_SELF?start_num=0&&search_select=$search_select&&search_value=$search_value&&$impress>";}?>首页</a>&nbsp;
    <?if($current_page != 1){echo "<a href=$PHP_SELF?start_num=$previous_page&&search_select=$search_select&&search_value=$search_value&&$impress>";}?>上一页</a>&nbsp;
    <?if($current_page != $num_of_pages&&$num_of_pages != 0){echo "<a href=$PHP_SELF?start_num=$next_page&&search_select=$search_select&&search_value=$search_value&&$impress>";}?>下一页</a>&nbsp;
    <?if($current_page != $num_of_pages&&$num_of_pages != 0){echo "<a href=$PHP_SELF?start_num=$last_page&&search_select=$search_select&&search_value=$search_value&&$impress>";}?>尾页</a>|
            </font></div>
          </td>
        </tr>
      </table>
    </form>
    <form method="post" action="">
      <input type="text" name="search_value" size="15">
      <select name="search_select" >
        <option value="">选择检索类</option>
        <?php
         for($i=0;$i<$table_title_num;$i++){
         //显示检索条件
         echo"<option value=$table_value[$i]>$table_title[$i]</option>";
         }
        ?>
      </select>
      <input type="hidden" name="start_num" value="">
      <input type="submit" name="Submit" value="检索">
    </form>
    </html>
    <!--
    本程序为1.0版本版权信息在转载的时候必须保留,但在使用中悉听尊便,包括个人与企业
    如果您发现了本程序功能与设计中的bug,请及时通知
    -->
      

  8.   

    to cngift(开花石头):
    哥们,不错哦!
      

  9.   

    见笑了,其实这个程序的实用性不是很强,当程序处理数据量很大的时候,这种需要通过很多的循环来判断显示用户定制数据列表的程序速度就慢了,还有,在计算sql语句的时候需要很多的变量赋值,这也会损耗资源,所以像这种东西也就是写着玩
      

  10.   

    PHP写oop很笨拙的,我倒觉得对于PHP,oop不是一种好的选择,要不为什么PHP提供那么丰富的函数库呢?可以试着在原有函数库基础上扩充,利用新的函数(自己构造的),这样会更方便,我就这么做的。
      

  11.   

    呵呵上面的程序有个大bug,已经修正了,不过这里还是在大家使用中自己修吧,并不影响大局,提醒一下,是关于非显示完全字段的搜索问题
      

  12.   

    看来八仙过海,各显神通啊,不过我还是支持用OOP