Heim >Backend-Entwicklung >PHP-Tutorial >开发工具 - PHP 编码规范,这里该不该断行?

开发工具 - PHP 编码规范,这里该不该断行?

WBOY
WBOYOriginal
2016-06-06 20:39:591207Durchsuche

phpStorm中自动的一个代码格式化规范。来自PSR01,“?”问号这里是否真的需要断行?
如何配置phpStorm去掉这个断行

<code>//检测是否在SESSION 中
public function inSessionCheck()
{
    return ($this->UserId = session('UserId')) && self::isUserId($this->UserId) && ($this->UserName = session('UserName') && !empty($this->UserName))
        ? true : false;
}
</code>

开发工具 - PHP 编码规范,这里该不该断行?

回复内容:

phpStorm中自动的一个代码格式化规范。来自PSR01,“?”问号这里是否真的需要断行?
如何配置phpStorm去掉这个断行

<code>//检测是否在SESSION 中
public function inSessionCheck()
{
    return ($this->UserId = session('UserId')) && self::isUserId($this->UserId) && ($this->UserName = session('UserName') && !empty($this->UserName))
        ? true : false;
}
</code>

开发工具 - PHP 编码规范,这里该不该断行?

看下面截图里面的(是一个下拉框)
开发工具 - PHP 编码规范,这里该不该断行?

这是代码过长不方便阅读的线 可以去掉

  1. 配置的截图有人贴了我就不贴了

  2. 关于PSR的相关规定在这里

一句话说就是每行的长度无论多长都不应该出错,但建议每行长度不超过80,检查器应当在长度超过120的时候报warning

  1. XXX ? true : false实在啰嗦,!!XXX是转换为true/false的更短的写法,而题主的实例中表达式本身已经是and出来了,连!!都不需要,如果是我的话大概会写成
<code>php</code><code>return $this->UserId = session('UserId'))
    && self::isUserId($this->UserId)
    && ($this->UserName = session('UserName')
    && !empty($this->UserName);
</code>

等等!

分完行我才发现,在一串and里面竟然藏了赋值,叫check的函数竟然有副作用,这都是坑队友的行为啊

<code>php</code><code>public function tryLoginBySession()
{
    $id = session('UserId');
    $name = session('UserName');

    if (!self::isUserId($id) || empty($name)) {
        return false;
    }

    $this->UserId = $id;
    $this->UserName = $name;

    return true;
}
</code>

a. 有副作用的方法就用动词词组,而非is check 之类的状态判断的方法名
b. 赋值就只赋值,判断就只判断,不要一边判断一遍赋值,比如说session里有ID但是self::isUserId失败的时候,这个方法返回false表示没登录,但 $this->UserId 竟然有值了,这是定时炸弹

最后才看到截图里后面那个方法也有? true : false,还是赶紧去掉吧

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn