这两个中的哪个更好,更准确和最优化
选项A或选项B?
请告诉我哪里错了,我很困惑:(
谢谢!
选项A
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,
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'));
}
}
我想知道哪个可以更快,更好,更优化和可重用。 而且,将值传递给对象属性比将参数传递给类/对象内部的函数还好吗?
答案 0 :(得分:1)
由于PHP使用写时复制,您会注意到两者之间的任何区别(从性能角度而言),尤其是与内核启动的成本相比。保持冷静,并使用探查器来衡量您的表现。在企业开发中,您不会(也确实不应)考虑这些事情,直到您开始注意到操作的性能下降。
答案 1 :(得分:0)
为只使用一次的值创建变量是一种好习惯吗?
这在很大程度上取决于上下文。 可能是将来是否需要以某种方式在中间修改此值,或者这是否会增加代码的可读性。
从性能的角度来看,我认为在引擎盖下它会以相同的速度产生相同的结果,但这只是我的观点,未经任何测试证明。
答案 2 :(得分:0)
这取决于您重用这些变量的程度(例如$ requestLocation),就可重用性而言,选项A更好,再加上Storing a PHP integer takes 68 bytes of memory,这笔钱足够小,我想我会而不是担心处理时间而不是内存空间。