<?php 
//这是一个朋友告诉我的写法 
$result_str = ""; 
for($i=1; $i<=5; $i++) 

   if($i != 5) 
   { 
       $result_str .= $i. ","; 
   } 
   else 
   { 
       $result_str .= $i; 
   } 

echo $result_str; 
//我自己的写法 
$result_str = ""; 
$sign = ""; 
for($i=1; $i<=5; $i++) 

   $result_str .= $sign. $i; 
   $sign = ","; 

echo $result_str; //也许还有更好的写法 ?>

解决方案 »

  1.   

    $a = (exp)?1:2;
    这种写法最好不要用
      

  2.   

    $a = (exp)?1:2;
    这种写法最好不要用为什么呢?很想知道原因,我也喜欢这样用的
      

  3.   

    $a = (exp)?1:2
    这样用的问题应该是可读性不强,简单的可能感觉不出来,如果复杂了应该就比较明显啦!
    程序应该是在简介性和可读性之间找一个最佳平衡点!
      

  4.   

    $a = (exp) ? 1 : 2;
    可读性好且足够简化
    (exp) ? doSomeThing() : doAnotherThing();
    不推荐,可读性差
      

  5.   

    $a = (exp) ? 1 : 2;没有if ... else ... 执行速度快,而且可读不好自己去测试一下
      

  6.   

    $a = (exp) ? 1 : 2;
    大量运用中……
      

  7.   

    因为在c里这样的效率是比if else高的。也是c里的推荐用法。习惯了。
      

  8.   

    怎么样再PHP页面中调用出SQL里面的表?
    还必须是用HTML来写....用SELECT * FROM----吗?请看我例子,该如何改?谢谢指教:
    <?php
    include 'inc/config.php';
    $link = mysql_connect("$host", "$user", "$pass", "$database")
       or die("keine Verbindung m&ouml;glich: " .mysql_error());mysql_select_db("$database", $link);$sql = "SELECT * FROM customers Where name = '$f_user' and pw='$f_pass'";
    $query = mysql_query($sql) OR die(mysql_error());$result = @mysql_fetch_array($query) or die('<br><br><br><p align="center">lost login <br><a 
    href="javascript:history.back()"><br>return login</a></p>'); $name = $result['name'];
    $pw = $result['pw'];
    $email = $result['email'];
    $city = $result['city'];
    echo "$f_user <br><br> Hello,Welcome! ";
    if ($pw==0){echo"<br><br><br>Benutzerkonto nicht mehr gültig!"; die();}
     if  ($f_pass!= $result['pw']) 
      echo '<p align="center"><br><br>Leider ist das eingegebene Passwort nicht korrekt!<br><br><a href="javascript:history.back()">Zurück</a>'; 
        die;   
      mysql_close($link);
    ?>
      

  9.   

    //简化1
    $a = 2;
    if(exp)
    {
    $a = 1;
    } 这也叫简化吗?只能算作代码行数的减少!!!你考虑过执行次数吗?先负值,然后判断,如果是真的话,还要再进行一次负值。(最多3步,最少2步)而你说的未优化的代码,先判断,无论真假,只需一次负值就可以了。(只须2步)哪个优化??!!!$a = (exp)?1:2; 至于这种嘛,只用了一行,代码上当然是最简单的了,但是内部是怎么处理的呢?我不太清楚,呵呵。就不多说了。你说的这些都是小的地方没有什么必要深究。应该研究研究程序的架构,怎么用最少的代码实现最多的功能!!!
    比如说显示数据的页面,怎样用一个页面实现显示所有的功能模块。例如:显示学生资料用这个页面,显示教师资料还是这个页面,显示商品列表还是用这个页面。
    等等,类似的功能,统统用一个页面来实现,你能做到吗???
      

  10.   

    现在硬件水平都很高了,web程序不是数学运算,一个页面很少有N的自加,4阶乘,无数循环,如果那样的计算,那说明你真强,即使常量相加相乘也最好先算好直接用,php是最终程序,没有编译器给你优化。
    一个页面的计算时间(非数据库部分)几十个毫秒就能完成,时间花费主要在php解析,i/o操作,有精力的话可以多关注include次数,写文件效率等方面
    不论是if else 还是 $a = (exp)?1:2; 都无关紧要,别拣了芝麻丢了冬瓜
      

  11.   

    第一个例子中,这个才是最正确的写法,所有人都能看懂
    if(exp) 

       $a = 1; 

    else 

       $a = 2; 
    } 而
    //简化3 
    $a = (exp)?1:2; 确实最垃圾的写法
      

  12.   

    ///{2. 
    if(exp1) 

       if(exp2) 
       { 
           statement; 
       } 
    } 一眼就能看到那些情况处理了,那些没有处理而 这种写法
    //简化后 
    if(exp1 && exp2) 

       statement; 

    ///} 就不是那么容易了~~~~
      

  13.   

    if(exp) 

       $a = 1; 

    else 

       $a = 2; 
    } 而
    //简化3 
    $a = (exp)?1:2; 
    确实最垃圾的写法***************************三目运算符比IF..ELSE之类的执行效率要高很多别在此胡言乱语,那只能说明你无知
      

  14.   

    上面 thisky 兄弟的程序,我常用的另一个写法效率我也试过了运行10万次速度是一样的因为原理都想同!只是换个个人习惯$result_str = "";
    for($i=1; $i<=5; $i++){
       $result_str .= ",".$i; 

    $result_str = substr($result_str,1);
      

  15.   

    ashchen(陈辉) 的观点是相当正确的
      

  16.   

    很遗憾的告诉楼主:经过一万次运行测试,您的原始代码和“简化”代码的运行速度是一样的因为“简化”!=“优化”,而您举出的例子本身也无优化可言把
    if(exp1) 

       if(exp2) 
       { 
           statement; 
       } 
    } 简化成
    if(exp1 && exp2) 

       statement; 

    并无不妥,但是
    if(exp1) 

       if(exp2) 
       { 
           statement; 
       } 
       statement; 

    也能简化吗?$a = (exp)?1:2; 
    的例子太简单了,不足以说明问题
    由于三个成分都必须是有返回值的表达式,所以适用范围并不广泛
    在者若后面还有语法成分时又必须用括号将三目运算括起,以免造成歧异。可读性不强总之,完全没有必要在这些细节上纠缠,而把您的精力放在更高的层次上!
      

  17.   

    这样的讨论还是有意义的,越讨论越明白嘛
    一般情况下
    php的执行时间=php载入内存花费时间(包括扩展库等)+php打开php程序文件花费时间+php扫描花费时间+php执行时间(包括include,数据库,读写文件,网络操作等)+释放资源花费时间实际上php执行时间是非常少的,但其他时间很少能测量到,需要底层debug。
    在一个请求的过程中这只说了php部分,还有apache部分,以及tcp/ip。
    它们之间都是彼此调用,浪费的时间更多,但这些无用功是必须做的有兴趣的可以深入探讨要想真正提高执行速度,当然是让apache和php写成一个,并且常驻内存,增加缓存
    哈,基本变成IIS了
      

  18.   

    个人觉得可以在日常code的时候应多注意 常量、静态变量的使用,函数、对象的引用,正则的使用(有时包括mysql中的正则),文件i/o操作,算法的优化等,注意释放内存、链接句柄等等。提高程序工作效率,尽量少消耗内存,这是我个人的标准。