首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >PHP -将每个输入请求传递给一个变量是否会使其变慢并消耗更多的字节?

PHP -将每个输入请求传递给一个变量是否会使其变慢并消耗更多的字节?
EN

Stack Overflow用户
提问于 2019-04-30 17:13:55
回答 3查看 35关注 0票数 1

这两个中哪一个更好,更准确,更优化

选项A还是选项B?

请告诉我哪一个是错的,我很困惑:

谢谢!

选项A

代码语言:javascript
运行
复制
class nameMyController extends Controller {

protected $locationId = 0;
protected $roomId = 0;
protected $participants = 0;
protected $startDate = null;
protected $endDate = null;
protected $request;

public function abc(Request $request) {
        $requestLocation = $request->input('office_site');
        $requestRoom = $request->input('rooms');
        $requestParticipants = $request->input('participants');
        $requestStartDate = $request->input('start_date');
        $requestEndDate = $request->input('end_date');

        $this->request = $request->all();

        if ($requestLocation != '') $this->locationId = $requestLocation;
        if ($requestRoom != '') $this->roomId = $requestRoom;
        if ($requestParticipants != '') $this->participants = $requestParticipants[0];
        if ($requestStartDate != '') $this->startDate = Carbon::parse($requestStartDate)->format(config('constants.DB_DATE_FORMAT'));
        if ($requestEndDate != '') $this->endDate = Carbon::parse($requestEndDate)->format(config('constants.DB_DATE_FORMAT'));

}

}

或者这个选项B,

代码语言:javascript
运行
复制
class nameMyController extends Controller {

protected $locationId = 0;
protected $roomId = 0;
protected $participants = 0;
protected $startDate = null;
protected $endDate = null;
protected $request;

public function abc(Request $request) {
        $this->request = $request->all();

        if ($request->input('office_site') != '') $this->locationId = $request->input('office_site');
        if ($request->input('rooms') != '') $this->roomId = $request->input('rooms');
        if ($request->input('participants') != '') $this->participants = $request->input('participants')[0];
        if ($request->input('start_date') != '') $this->startDate = Carbon::parse($request->input('start_date'))->format(config('constants.DB_DATE_FORMAT'));
        if ($request->input('end_date') != '') $this->endDate = Carbon::parse($request->input('end_date'))->format(config('constants.DB_DATE_FORMAT'));

}
}

我想知道哪个运行得更快、更好、更优化、更可重用。将值传递给对象属性比作为参数传递给类/对象中的函数好吗?

EN

回答 3

Stack Overflow用户

发布于 2019-04-30 17:29:59

由于PHP使用写入时复制,因此您会注意到两者之间的任何差异(性能方面),特别是与内核引导成本相比。保持冷静,并使用profiler来测量您的性能。在企业开发中,您不会(也确实不应该)考虑这样的事情,直到您开始注意到行为的性能下降。

票数 1
EN

Stack Overflow用户

发布于 2019-04-30 17:29:38

为只使用一次的值创建变量是一种好做法吗?

这在很大程度上取决于上下文。如果将来你需要以某种方式在中间修改这个值,或者这将增加代码的可读性,那么可能是这样的。

从性能的角度来看,我认为在引擎盖下,它将以相同的速度产生相同的结果,但这只是我的观点,没有任何测试证明。

票数 0
EN

Stack Overflow用户

发布于 2019-04-30 17:40:09

这取决于你在多大程度上重用这些变量(如$requestLocation),就可重用性而言,选项A加上Storing a PHP integer takes 68 bytes of memory更好,这是一个足够小的数量,我认为我宁愿担心处理时间而不是内存空间。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55917625

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档