2019-12-07

image.png

image.png

image.png

image.png

image.png

image.png

image.png
 1、循环里别用函数

       for($x=0; $x < count($array); $x)

       //count()函数在外面先计算

 2、用i+=1代替i=i+1。符合c/c++的习惯,效率还高。
像echo输出多个字符串或变量的函数,使用”.”连接效率要比”,”连接执行效率低。
1)主要是使用未定义变量,而直接使用变量,做程序开发结束的时候,程序员都喜欢关闭debug,让一切Notice和Warning都影藏起来,但实质上php即使关闭debug也会记录日志,将所有的Notice和Warning信息全部写入日志文件中,无非是一件浪费性能的事

2)另外在程序中应尽量注意变量的使用,如字符串最好使用单引号,而不是双引号,毕竟双引号还得PHP解析为单引号在执行。

3)说到这里数组中的键值索引一样也需要用单引号,不要不写引号这样的程序执行效率极低。

当执行变量$i的递增或递减时,$i++会比++$i慢一些。这种差异是PHP特有的,并不适用于其他语言,所以请不要修改你的C或 Java代码并指望它们能立即变快,没用的。++$i更快是因为它只需要3条指令(opcodes),$i++则需要4条指令。后置递增实际上会产生一个 临时变量,这个临时变量随后被递增。而前置递增直接在原值上递增。

(举例如下)
if (strlen($foo) < 5) { echo “Foo is too short”$$ }
(与下面的技巧做比较)
if (!isset($foo{5})) { echo “Foo is too short”$$ }
调用isset()恰巧比strlen()快,因为与后者不同的是,isset()作为一种语言结构,意味着它的执行不需要函数查找和字母小写化。也就是说,实际上在检验字符串长度的顶层代码中你没有花太多开销。
1、用单引号代替双引号来包含字符串,这样做会更快一些。因为PHP会在双引号包围的字符串中搜寻变量, 单引号则不会,注意:只有echo能这么做,它是一种可以把多个字符串当作参数的”函数”(译注:PHP手册中说echo是语言结构,不是真正的函数,故 把函数加上了双引号)。

2、如果能将类的方法定义成static,就尽量定义成static,它的速度会提升将近4倍。

3、$row[‘id’] 的速度是$row[id]的7倍。
[图片上传中...(image.png-fc6f58-1619026816235-0)]

4、echo 比 print 快,并且使用echo的多重参数(译注:指用逗号而不是句点)代替字符串连接,比如echo $str1,$str2。
要注销一个变量,可以用 unset($foo)或者$foo=NULL

五十个小技巧提高PHP执行效率,解决三大常见问题
PHP isset()与empty()的使用区别详解
如何在 Laravel 只查询关联模型的个别字段

image.png

return $sql->paginate(10,['collage_add.*','oc.name as operation_name']);
image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

     // 众筹结束时间减去当前时间得到剩余秒数
      $crowdfundingTtl = $sku->product->crowdfunding->end_at->getTimestamp() - time();
      // 剩余秒数与默认订单关闭时间取较小值作为订单关闭时间
      dispatch(new CloseOrder($order, min(config('app.order_ttl'), $crowdfundingTtl)));
此项目必须在 {{ $product->crowdfunding->end_at->format('Y-m-d H:i:s') }} 前得到 ¥{{ $product->crowdfunding->target_amount }} 的支持才可成功, 筹款将在{{ $product->crowdfunding->end_at->diffForHumans(now()) }}结束!
image.png

image.png

你可能感兴趣的:(2019-12-07)