<menu id="uuzns"><dd id="uuzns"></dd></menu>
  1. <big id="uuzns"></big>
    <mark id="uuzns"></mark>
      <meter id="uuzns"></meter>
    1. <td id="uuzns"><menuitem id="uuzns"><mark id="uuzns"></mark></menuitem></td>
      1. 辉煌电商SEO内测

        百度关键词优化三天上首页£¡同行都是朋友£¬ ?#38431;?#19968;起互利共赢¡£谢绝一切非正规行业服务£¬?#34892;?#20197;下同行¡¢团队¡¢?#25945;?#21644;代理的支持£º

        百度站长?#25945;¨¡¢MIP开发小组¡¢SEO焦大老友¡¢SEO每天一贴ZAC大哥¡¢卢松松大哥¡¢海瑶SEO兄弟¡¢附子SEO兄弟¡¢探索者SEO¡¢帮站SEO好友¡¢互点宝¡¢超快排?#25945;?

        百亿互刷宝¡¢下拉天下¡¢SEO自学网¡¢SEO研究?#34892;Ä¡?#23567;明SEO¡¢王德春SEO¡¢马海祥博客¡¢踏雪无痕?#19968;?#24037;作室¡¢SEO云优化好友¡¢云客网¡¢杭州思亿欧¡¢网赚吧¡¢北京SEO韩非老弟

        需要了解以上同仁的相关信息£¬我们已经给你做好了搜索框£¬看右上角绿色那个£¬输入搜索即刻直达

        网站统计£º 共有读稿£º14437部 / 今日更新£º篇 / 评论£º19条 / 会员£º75 名 / 阅读£º1086085
        您好,请 ¡¾登陆¡¿/¡¾注册¡¿
        软件内容页横幅广告
        您现在的位置£ºSEO?#25945;?/a> > PHP网站建设 >

        提高php编程效率技巧

        2018.04.20

        浏览:

        ¡¾导语¡¿如果您觉得本篇内容还不错£¬请点击文章下面的赞£¬然后分享给朋友哦£¡...

        提高php编程效率技巧-破洛洛教学网...请看详情...

        seo

        seo

        提高php编程效率技巧
        用单引号代替双引号来包含字符串£¬这样做会更快一些¡£因为PHP会在双引号包围的字符串中搜寻变量£¬单引号则 不会£¬注意£º只有echo能这么做£¬它是一种可以把?#21908;?#23383;符串当作?#38382;?#30340;“函数”(译注£ºPHP手册中说echo是语言结构£¬不是真正的函数£¬故把函数加 上了双引号)¡£

        ¡¡   1¡¢如果能将类的方法定义成static£¬就尽量定义成static£¬它的速度会提升将近4倍¡£

                2¡¢$row['id'] 的速度是$row[id]的7倍¡£

        ¡¡¡¡3¡¢echo 比 print 快£¬并且使用echo的多重?#38382;?译注£º指用逗?#21734;?#19981;是句点)代替字符串连接£¬比如echo $str1,$str2¡£

        ¡¡¡¡4¡¢在执行for循?#20998;?#21069;确定最大循环数£¬不要每循环一次?#25216;?#31639;最大值£¬最好运用foreach代替¡£

        ¡¡¡¡5¡¢注销?#20999;?#19981;用的变量尤其是大数组£¬以便释放内存¡£

        ¡¡¡¡6¡¢尽量避免使用__get£¬__set£¬__autoload¡£

        ¡¡¡¡7¡¢require_once()代价昂贵¡£

        ¡¡¡¡8¡¢include文件时尽量使用绝对路径£¬因为它避免了PHP去include_path里查找文件的速度£¬解析操作系统路径所需的时间会更少¡£

        ¡¡¡¡9¡¢如果你想知道脚本开始执行(译注?#26477;?#26381;务器端收到客户端请求)的时刻£¬使用$_SERVER[‘REQUEST_TIME']要好于time()¡£

        ¡¡¡¡10¡¢函数代替正则表达式完?#19978;?#21516;功能¡£

        ¡¡¡¡11¡¢str_replace函数比preg_replace函数快£¬但strtr函数的效率是str_replace函数的四倍¡£

        ¡¡¡¡12¡¢如果一个字符串替换函数£¬可接受数组或字符作为?#38382;ý£?#24182;且?#38382;?#38271;度不太长£¬那么可以考虑额外写?#27426;?#26367;换代码£¬使得每次传递?#38382;?#26159;一个字符£¬而不是只写一行代码接受数组作为查询和替换的?#38382;ý¡?/p>

        ¡¡¡¡13¡¢使用选择分支语句(译注?#26477;´switch case)好于使用?#21908;öif£¬else if语句¡£

        ¡¡¡¡14¡¢用@屏蔽错误消息的做法非常低效£¬极其低效¡£

        ¡¡¡¡15¡¢打开apache的mod_deflate模块£¬可以提高网页的浏览速度¡£

        ¡¡¡¡16¡¢数据库连接当使用完毕时应关掉£¬不要用长连接¡£

        ¡¡¡¡17¡¢错误消息代价昂贵¡£

        ¡¡¡¡18¡¢在方法中递增局部变量£¬速度是最快的¡£几乎与在函数中调用局部变量的速度相当¡£

        ¡¡¡¡19¡¢递增一个全?#30452;?#37327;要比递增一个局部变量慢2倍¡£

        ¡¡¡¡20¡¢递增一个对象属性(如£º$this->prop++)要比递增一个局部变量慢3倍¡£

                21¡¢递增一个未预定义的局部变量要比递增一个预定义的局部变量慢9至10倍¡£

        ¡¡¡¡22¡¢仅定义一个局部变量而没在函数中调用它£¬同样会减慢速度£¨其程度相当于递增一个局部变量£©¡£PHP大概会检查?#35789;?#21542;存在全?#30452;?#37327;¡£

        ¡¡¡¡23¡¢方法调?#27599;?#26469;与类中定义的方法的数量无关£¬因为我£¨在测试方法之前和之后都£©添加了10个方法£¬但?#38405;?#19978;没有变化¡£

        ¡¡¡¡24¡¢派生类中的方法运行起来要快于在基类中定义的同样的方法¡£

        ¡¡¡¡25¡¢调用带有一个?#38382;?#30340;空函数£¬其花费的时间相当于执行7至8次的局部变量递增操作¡£类似的方法调用所花费的时间接近于15次的局部变量递增操作¡£

        ¡¡¡¡26¡¢Apache解析一个PHP脚本的时间要比解析一个静态HTML页面慢2至10倍¡£尽量多用静态HTML页面£¬少用脚本¡£

        ¡¡¡¡27¡¢除非脚?#31350;?#20197;缓存£¬否则每次调用时都会重新编译一次¡£引入一套PHP缓存机制通常可以提升25%至100%的?#38405;Ü£?#20197;免除编译开销¡£

        ¡¡¡¡28¡¢尽量做缓存£¬可使用memcached¡£memcached是一款高?#38405;?#30340;内存对象缓存系统£¬可用来加速动态Web应用程序£¬减轻数据库负载¡£对运算码 (OP code)的缓存很有用£¬使得脚本不必为每个请求做重新编译¡£

        ¡¡¡¡29¡¢当操作字符串并需要检验其长度是否满足?#25345;?#35201;求时£¬你想当然地会使用strlen()函数¡£此函数执行起来相当快£¬因为它不做任何计算£¬只返回在zval 结构£¨C的内置数据结构£¬用于存储PHP变量£©中存储的已知字符串长度¡£但是£¬由于strlen()是函数£¬多多少少会?#34892;?#24930;£¬因为函数调用会经过诸多步骤£¬如字?#24863;?#20889;化£¨译注£º指函数名小写化£¬PHP不区分函数名大小写£©¡¢哈希查找£¬会跟随被调用的函数一起执行¡£在某些情况下£¬你可以使用isset() 技巧加速执行你的代码¡£

        ¡¡¡¡£¨举例如下£©

        if (strlen($foo) < 5) { echo “Foo is too short”$$ }

        ¡¡¡¡£¨与下面的技巧做比?#24076;?/p>

        if (!isset($foo{5})) { echo “Foo is too short”$$ }

        ¡¡¡¡调用isset()恰巧比strlen()快£¬因为与后者不同的是£¬isset()作为一种语言结构£¬意味着它的执行不需要函数查找和字?#24863;?#20889;化¡£也就是说£¬?#23548;?#19978;在检验字符串长度的顶层代码中你没?#35874;?#22826;多开销¡£

        ¡¡¡¡34¡¢当执行变量$i的递增或递减时£¬$i++会比++$i慢一些¡£这种差异是PHP特有的£¬并不适用于其他语言£¬所以请不要修改你的C或Java代码并指望它们能立即变快£¬没用的¡£++$i更快是因为它只需要3条指令(opcodes)£¬$i++则需要4条指令¡£后置递增?#23548;?#19978;会产生一个临?#21271;?#37327;£¬这个临?#21271;?#37327;随后被递增¡£而前置递增直接在原值上递增¡£这是最优化处理的一种£¬正如Zend的PHP优化器所作的那样¡£牢记这个优化处理不失为一个好主意£¬因为并不是所有的指令优化器都会做同样的优化处理£¬并且存在大量没有装配指令优化器的互联网服务提供商£¨ISPs£©和服务器¡£

        ¡¡¡¡35¡¢并不是事必面向对象(OOP)£¬面向对象往往开销很大£¬每个方法和对象调用都会消耗很多内存¡£

        ¡¡¡¡36¡¢并非要用类实现所有的数据结构£¬数组也很有用¡£

        ¡¡¡¡37¡¢不要把方法细分得过多£¬仔细想想你真正打算重用的是哪些代码£¿

        ¡¡¡¡38¡¢当你需要时£¬你总能把代码分解成方法¡£

        ¡¡¡¡39¡¢尽量采用大量的PHP内置函数¡£

        ¡¡¡¡40¡¢如果在代码中存在大量耗时的函数£¬你可以考虑用C扩展的方式实现它们¡£

        ¡¡¡¡41¡¢评估检验(profile)你的代码¡£检验器会告诉你£¬代码的哪些部分消耗了多少时间¡£Xdebug调?#20113;?#21253;含了检验程序£¬评估检验总体上可以显示出代码的瓶颈¡£

        ¡¡¡¡42¡¢mod_zip可作为Apache模块£¬用来?#35789;?#21387;缩你的数据£¬并可让数据传输量降低80%¡£

        ¡¡¡¡43¡¢在可以用file_get_contents替代file¡¢fopen¡¢feof¡¢fgets等系列方法的情况下£¬尽量用file_get_contents£¬因为他的效率高得多£¡但是要注意file_get_contents在打开一个URL文件时候的PHP版本问题£»

        ¡¡¡¡44¡¢尽量的少进行文件操作£¬虽然PHP的文件操作效率也不低的£»

        ¡¡¡¡45¡¢优化Select SQL语句£¬在可能的情况下尽?#21487;?#30340;进行Insert¡¢Update操作(在update上£¬我?#27426;?#25209;过)£»

        ¡¡¡¡46¡¢尽可能的使用PHP内部函数£¨但是我?#27425;?#20102;找个PHP里面不存在的函数£¬浪费了?#31350;?#20197;写出一个自定义函数的时间£¬经验问题啊£¡£©£»

        ¡¡¡¡47¡¢循环内部不要声明变量£¬尤其是大变量£º对象(这好像不只是PHP里面要注意的问题吧£¿)£»

        ¡¡¡¡48¡¢多维数组尽量不要循?#38750;?#22871;?#25345;“ú?/p>

        ¡¡¡¡49¡¢在可以用PHP内部字符串操作函数的情况下£¬不要用正则表达式£»

        ¡¡¡¡50¡¢foreach效率更高£¬尽量用foreach代替while和for循环£»

        ¡¡¡¡51¡¢用单引号替代双引号引用字符串£»

        ¡¡¡¡52¡¢“用i+=1代替i=i+1¡£符合c/c++的习惯£¬效率还高”£»

        ¡¡¡¡53¡¢对global变量£¬应该用完就unset()掉£»

        ¡¡¡¡54¡¢用单引号代替双引号来包含字符串£¬这样做会更快一些¡£因为PHP会在双引号包围的字符串中搜寻变量£¬单引号则不会£¬注意£º只有echo能这么做£¬它是一种可以把?#21908;?#23383;符串当作?#38382;?#30340;“函数”£¨译注£ºPHP手册中说echo是语言结构£¬不是真正的函数£¬故把函数加上了双引号£©¡£

        0
        赞一个
        关键词£º
        ¡î?#19981;?#36825;篇文章吗£¿分享给你的好友吧£¡点击这里复制网址¡î
        共有50人阅读£¬期待你的评论£¡评论
        请先登陆后才能发表评论哦£¡没账号£¿赶紧注册一个吧£¡
        最新评论
        ?#35753;?#26631;签
        回到顶部
        ʱʱ²Ê¹Ù·½¿ª½±

          <menu id="uuzns"><dd id="uuzns"></dd></menu>
        1. <big id="uuzns"></big>
          <mark id="uuzns"></mark>
            <meter id="uuzns"></meter>
          1. <td id="uuzns"><menuitem id="uuzns"><mark id="uuzns"></mark></menuitem></td>
              1. <menu id="uuzns"><dd id="uuzns"></dd></menu>
              2. <big id="uuzns"></big>
                <mark id="uuzns"></mark>
                  <meter id="uuzns"></meter>
                1. <td id="uuzns"><menuitem id="uuzns"><mark id="uuzns"></mark></menuitem></td>