对于初学者而言,可能很难理解为什么某些做法更安全。
但是,以下一些技巧可能超出了 php 的范围。
让我们看下面的代码:
if (ist($condition) && true === $condition) echo 'this is a success';虽然正确,但是你再看看下面的代码if (ist($condition) && true === $condition) foreach (range("a", "z") as $letter) echo $letter . php_eol; echo 'this is a success';
依旧正确,但是 t周公解梦梦见坟墓his is a success 最终只 echo 了一次,这可能是一个陷阱。
等等,我们在来看看将$condition = fal;
写在判断之前会发生什么
$condition = fal;if (ist($condition) && true === $condition) foreach (range("a", "z") as $letter) echo $letter . php_eol; echo 'this is a success';
该程序依旧成功打印 this is a success。
这显然不是我们想要的结果,你现在知道为什么花括号很重要了吧?
省略括号通常会导致不良的副作用。此外,阅读代码要困难得多。所以应当将其改写成这样
$condition = fal;if (ist($condition) && true === $condition) { foreach (range("a", "z") as $letter) { echo $letter . php_eol; } echo 'this is a success';}
在使用任何变量之前,最好对它进行初始化。考虑以下例子:
if (ist($condition) && true === $condition) { $main = 'chocolate';} el { $main = 'vanilla';}
如果你认为上面例子 ok 的话,那么试着添加几个elif
条件看看
if ($condition) { $main = 'chocolate'; $time = 2;} elif($othercondition)) { $main = 'strawberry'; $time = 3;} elif($otherothercondition)) { $main = 'apple'; $time = 1;} el { $main = 'vanilla'; $time = 9;}
该代码显得很笨重。当你在elif
代码块中添加逻辑时你可能会忘记一些变量。
试着这样做:
$main = 'vanil劳动关系学院la';$time = 9;if ($condition) { $main = 'chocolate'; $time = 2;} elif($othercondition)) { $main = 'strawberry'; $time = 3;} elif($otherothercondition)) { $main = 'apple'; $time = 1;}
这种方式,每个人都知道$main
和$time
变量在接下来的代码中应该被定义,该代码似乎更具可读性。
这种方式,每个人都知道 $main 和 $time 变量在接下来的代码中应该被定义,该代码似乎更具可读性。
在 php 中 @是一个错误控制操作符。它用于隐藏错误,但事实上没人希望如此。
相反,你应当试着捕获这些错误并使用错误日志记录。
@操作符有着极大的缺点,比如将任何调试变为噩梦或使代码运行更慢!
对于代码的每次运行,它都会调用 ini 设置以将 error_reporting 设为 0,并在这之后将其设回原始值。
它是如此耗费资源。我觉得完全不使用它才是更为安全的。
虽然三元运算符可能很方便,但代码有可能更加难以阅读。
三元运算可用于简化 if-el 部分:
$main = ($condition) ? "chocolate" : "vanilla";
含义如下:
if ($condition) { $main = "chocolate";} el { $main = "vanilla";}
上面的例子是 ok 的,但我已经看到过如下的例子:
$output = ($condition) ? ($othercondition) ? 'ok' : 'ko' : 'unknown';
不建议链式或嵌套式地使用三元运算。
elvis 运算符是一个特殊的运算符。
$foo = $bar ?: "baz";
以上是指:
$foo = $bar ? $bar : "baz";
可以这样写:
if ($bar) { $foo = $bar;} el { $foo = "baz";}
信不信由你,正如维基百科所说:
“elvis 运算符” 这个名字指的是这样一个事实:当它的符号?: 从侧面看时,就像是 埃尔维斯・普雷斯利 (elvis presley) 的一个表情符号和他的卷发。
自从 php7 起,null 合并运算符可以用了:
需要将三元运算符与
ist()
结合使用的常见情况的语法。
因此:
$result = ist($_get['result']) ? $_get['result'] : "default";
可以这样写:
$result = $_get['result'] ?? "default";
在尝试使用空合并操作符替换 ternaries 和 elvis 操作符时要格外小心!
空合并运算符从不检查条件是否为学历在线验证报告真,而是检查您的 var 是否已设置而不为空 ( ist() 的概念)。
我希望你喜欢这些编程技巧。我想说的最后一件事是:请不要为了简洁而牺牲了清晰度。
更多内容请访问
怎么从一名码农成为架构师的必看知识点:目录大全(持续更新)50w年薪挑战!
本文发布于:2023-04-08 09:37:50,感谢您对本站的认可!
本文链接:https://www.wtabcd.cn/fanwen/zuowen/f9dac1c7003d8e7034c76525c249c486.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文word下载地址:分享几个 PHP 编码的最佳实践.doc
本文 PDF 下载地址:分享几个 PHP 编码的最佳实践.pdf
留言与评论(共有 0 条评论) |