高级 php 格式化需要帮助理解布局

丹·杜普伊斯

这是函数:

function simplePresent($e) {

    $w = ($f = preg_match)('/ey|se|d |[sI]$|We/', $a = $e[0]);

    be == ($b = $e[1])
    ?
    $b = $w ? $a == I ? am : are : is
    :
    $w ?: $b = $b == have ? has : $b .= $f('/[h-z]$/', $b) ? es : s;

    return "$a $b $e[2]";
}

这是代码战的解决方案。它在定义的参数下处理格式。我试图了解对变量$f$w. 还有不带引号的变量的使用。最后是嵌套的问号和冒号。这是如何运作的?

谢谢

迈肯32

该函数preg_match()被分配给变量$f并稍后在代码中重用。$w只是 的结果preg_match()例如:

<?php
$w = ($f = 'sprintf')("foo");
// same as this:
$f = 'sprintf';
$w = $f("foo");
// which is the same as this:
$w = sprintf('foo');

未加引号的值将首先被解释为常量,而未定义的常量将被解释为字符串。下面是一个正确的常量定义的样子:

<?php
define("foo", "bar");
echo foo;
echo bar;
// PHP Notice:  Use of undefined constant bar - assumed 'bar'

// same as this:
echo "bar";
echo "bar";

问号和冒号是三元语句的一部分这是一个有用的速记,但 PHP 建议不要像那里那样将它们堆叠在一起(结果“不明显”。)一个简单的看起来像这样:

<?php
echo ($foo == "foo" ? "equal" : "inequal");
$a = $b ? $c : $d;

// this is the same as:
if ($foo == "foo") {
    echo "equal";
} else {
    echo "inequal";
}
if ($b) {
    $a = $c;
} else {
    $a = $d;
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章