How to return an array and get the first element of it in one line in PHP?

后端 未结 4 1717
轮回少年
轮回少年 2021-01-22 16:58

this question is just for fun and maybe learning a PHP shorthand trick (if exists) Let\'s assume that I have this code:

$item = $this->get_item($id);
$item =          


        
相关标签:
4条回答
  • 2021-01-22 17:29

    You can use reset($array) to reset the internal array position and return the value of the first element.

    0 讨论(0)
  • 2021-01-22 17:35

    For the first one, you can do this trick... for other indices, it gets uglier.

    list($algo) = explode(':', $password);
    

    I was looking for a more elegant answer but here we are :)

    0 讨论(0)
  • 2021-01-22 17:41

    In PHP 5.4 this becomes an easy one-liner

    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.

    $firstElement = getArray()[0];
    

    where

    function getArray() {
        return array(1, 2, 3);
    }
    

    Taken from a slightly modified version of Example #7 from the PHP manual pages (Arrays).

    0 讨论(0)
  • 2021-01-22 17:42

    Nope, as far as I know, there is no way to do this in PHP.

    What you could do is return an object of a class that has a method getLine(). With that, you could do

    $item = $this->prepare_items(array($item))->getLine(0);
    

    you could - I'm not saying it's necessarily always a good idea, but it's becoming more and more popular, probably influenced by jQuery's elegance - also store the results of get_item in the object, and have it return $this to allow for method chaining like so:

    $item = $this->get_item($id)->prepare_items()->getLine(0);
    
    0 讨论(0)
提交回复
热议问题