PHP 5.3.10 vs PHP 5.5.3 syntax error unexpected '['

前端 未结 3 522
耶瑟儿~
耶瑟儿~ 2020-11-30 15:03

Is it possible that this PHP code line

if ($this->greatestId()[\"num_rows\"] > 0)

works in PHP 5.5 and returns an error in 5.3??

相关标签:
3条回答
  • 2020-11-30 15:32

    As mentioned in the PHP 5.4 notes:

    As of PHP 5.4 it is possible to array dereference the result of a function or method call directly. Before it was only possible using a temporary variable.

    It's not possible to do that in PHP 5.3, you need to use a variable.

    0 讨论(0)
  • 2020-11-30 15:37

    Array dereferencing became available in PHP 5.4 That's why this doesn't work in PHP 5.3. So you have an extra step where you need to get the array value from your function call and then you can use it:

    $variable = $this->greatestId();
    if ($variable["num_rows"] > 0){
          // do stuff
    }
    
    0 讨论(0)
  • 2020-11-30 15:54

    You cant use like this if ($this->greatestId()["num_rows"] > 0) in PHP 5.3 ver use below code.

    $var = $this->greatestId();
    if ($var["num_rows"] > 0){
      // your code
    }
    
    0 讨论(0)
提交回复
热议问题