PHP优化代码

时间:2010-07-29 15:48:45

标签: php

关于“最简单的代码是什么?”的几个问题:

  1. 没有{}

    if($match->name == "Marry") {
        $match = true;
    }
    
  2. 没有{}

    if($match->name == "Marry") {
        $match = true;
    } else {
        $match = false;
    }
    
  3. 如何问if $match = true

  4. 如何问if array() has any value

  5. 如何问if $variable has numeric value(0-9)?

  6. 如何问if $variable's first symbol isn't a letter or number

  7. 如何问if $match = false

4 个答案:

答案 0 :(得分:2)

1)

if($match->name == "Marry") {
    $match = true;
}

这已经足够短了,你不能在不损害可读性的情况下改变它(除了可能删除括号)。

2)

$match = ($match->name == "Marry");

请注意,您使用的是相同的变量名称。

3)

if ($match = true)

我想你想if ($match == true),应该只写if ($match)

4)

编辑我将其视为“特别是有任何(=某些)值”,检查数组是否为空,您可以使用empty

请参阅in_array

5)

有几种方法,可能的方法是

is_numeric($variable) && strlen("$variable") == 1

要允许开始0,你可以

is_numeric($variable) && $variable >= 0 && $variable <= 9

6)

ctype_alnum($variable[0])

答案 1 :(得分:1)

1)

$match = ($match->name == "Marry") ? true : $match;

2)

$match = ($match->name == "Marry");

3)

if ( $match === true ) {}

4)

$array = array();
if ( !empty( $array ) ) {}

5)

if ( is_numeric( $variable ) ) {}

6)

if ( ctype_alnum($variable[0]) ) ) {}

答案 2 :(得分:1)

A1。不能真正缩短,在第2部分的情况下接受

A2。     $ match =($ match-&gt; name ==“Marry”);

A3。我怀疑你的意思......

if ($match) {
   echo "Value of $match evaluates as true";
}

A4。不确定你的意思......

if (empty($array)) {
// or 
if (in_array($variable, $array)) {

A5。

if (is_numeric($variable)) {
   echo "it's numeric";
}

A6。

if (preg_match('#^[^a-z\d]#i', $variable) {
   echo "doesn't start with letter or number";
}

答案 3 :(得分:0)

1) OK
2) $match = ($match->name == 'Marry';
3) if ($match)
4) if (count($array))
5) preg_match('/^[+-]?\d+(\.\d+)?$/', $string)
6) preg_match('/^[^0-9a-zA-Z]/', $string)