Welcome to Knowledge Base!

KB at your finger tips

This is one stop global knowledge base where you can learn about all the products, solutions and support features.

Categories
All
Web-PHP
PHP / compact — DevDocs

compact

(PHP 4, PHP 5, PHP 7, PHP 8)

compact Create array containing variables and their values

Description

compact(array|string $var_name, array|string ...$var_names): array

Creates an array containing variables and their values.

For each of these, compact() looks for a variable with that name in the current symbol table and adds it to the output array such that the variable name becomes the key and the contents of the variable become the value for that key. In short, it does the opposite of extract() .

Note :

Before PHP 7.3, any strings that are not set will silently be skipped.

Parameters

var_name
var_names

compact() takes a variable number of parameters. Each parameter can be either a string containing the name of the variable, or an array of variable names. The array can contain other arrays of variable names inside it; compact() handles it recursively.

Return Values

Returns the output array with all the variables added to it.

Errors/Exceptions

compact() issues an E_NOTICE level error if a given string refers to an unset variable.

Changelog

Version Description
7.3.0 compact() now issues an E_NOTICE level error if a given string refers to an unset variable. Formerly, such strings have been silently skipped.

Examples

Example #1 compact() example

<?php
$city  = "San Francisco";
$state = "CA";
$event = "SIGGRAPH";

$location_vars = array("city", "state");

$result = compact("event", $location_vars);
print_r($result);
?>

The above example will output:

Array
(
    [event] => SIGGRAPH
    [city] => San Francisco
    [state] => CA
)

Notes

Note : Gotcha

Because variable variables may not be used with PHP's Superglobal arrays within functions, the Superglobal arrays may not be passed into compact() .

See Also

  • extract() - Import variables into the current symbol table from an array
PHP / count — DevDocs

count

(PHP 4, PHP 5, PHP 7, PHP 8)

count Counts all elements in an array or in a Countable object

Description

count(Countable|array $value, int $mode = COUNT_NORMAL): int

Counts all elements in an array when used with an array. When used with an object that implements the Countable interface, it returns the return value of the method Countable::count() .

Parameters

value

An array or Countable object.

mode

If the optional mode parameter is set to COUNT_RECURSIVE (or 1), count() will recursively count the array. This is particularly useful for counting all the elements of a multidimensional array.

Caution

count() can detect recursion to avoid an infinite loop, but will emit an E_WARNING every time it does (in case the array contains itself more than once) and return a count higher than may be expected.

Return Values

Returns the number of elements in value . Prior to PHP 8.0.0, if the parameter was neither an array nor an object that implements the Countable interface, 1 would be returned, unless value was null , in which case 0 would be returned.

Changelog

Version Description
8.0.0 count() will now throw TypeError on invalid countable types passed to the value parameter.
7.2.0 count() will now yield a warning on invalid countable types passed to the value parameter.

Examples

Example #1 count() example

<?php
$a[0] = 1;
$a[1] = 3;
$a[2] = 5;
var_dump(count($a));

$b[0]  = 7;
$b[5]  = 9;
$b[10] = 11;
var_dump(count($b));
?>

The above example will output:

int(3)
int(3)

Example #2 count() non Countable|array example (bad example - don't do this)

<?php
$b[0]  = 7;
$b[5]  = 9;
$b[10] = 11;
var_dump(count($b));

var_dump(count(null));

var_dump(count(false));
?>

The above example will output:

int(3)
int(0)
int(1)

Output of the above example in PHP 7.2:

int(3)

Warning: count(): Parameter must be an array or an object that implements Countable in … on line 12
int(0)

Warning: count(): Parameter must be an array or an object that implements Countable in … on line 14
int(1)

Output of the above example in PHP 8:

int(3)

Fatal error: Uncaught TypeError: count(): Argument #1 ($var) must be of type Countable .. on line 12

Example #3 Recursive count() example

<?php
$food = array('fruits' => array('orange', 'banana', 'apple'),
              'veggie' => array('carrot', 'collard', 'pea'));

// recursive count
var_dump(count($food, COUNT_RECURSIVE));

// normal count
var_dump(count($food));

?>

The above example will output:

int(8)
int(2)

Example #4 Countable object

<?php
class CountOfMethods implements Countable
{
    private function someMethod()
    {
    }

    public function count(): int
    {
        return count(get_class_methods($this));
    }
}

$obj = new CountOfMethods();
var_dump(count($obj));
?>

The above example will output:

int(2)

See Also

  • is_array() - Finds whether a variable is an array
  • isset() - Determine if a variable is declared and is different than null
  • empty() - Determine whether a variable is empty
  • strlen() - Get string length
  • is_countable() - Verify that the contents of a variable is a countable value
  • Arrays
Read article
PHP / current — DevDocs

current

(PHP 4, PHP 5, PHP 7, PHP 8)

current Return the current element in an array

Description

current(array|object $array): mixed

Every array has an internal pointer to its "current" element, which is initialized to the first element inserted into the array.

Parameters

array

The array.

Return Values

The current() function simply returns the value of the array element that's currently being pointed to by the internal pointer. It does not move the pointer in any way. If the internal pointer points beyond the end of the elements list or the array is empty, current() returns false .

Warning

This function may return Boolean false , but may also return a non-Boolean value which evaluates to false . Please read the section on Booleans for more information. Use the === operator for testing the return value of this function.

Changelog

Version Description
8.1.0 Calling this function on object s is deprecated. Either use get_mangled_object_vars() on the object first, or use ArrayIterator .

Examples

Example #1 Example use of current() and friends

<?php
$transport = array('foot', 'bike', 'car', 'plane');
$mode = current($transport); // $mode = 'foot';
$mode = next($transport);    // $mode = 'bike';
$mode = current($transport); // $mode = 'bike';
$mode = prev($transport);    // $mode = 'foot';
$mode = end($transport);     // $mode = 'plane';
$mode = current($transport); // $mode = 'plane';

$arr = array();
var_dump(current($arr)); // bool(false)

$arr = array(array());
var_dump(current($arr)); // array(0) { }
?>

Notes

Note : The results of calling current() on an empty array and on an array, whose internal pointer points beyond the end of the elements, are indistinguishable from a bool false element. To properly traverse an array which may contain false elements, see the foreach control structure. To still use current() and properly check if the value is really an element of the array, the key() of the current() element should be checked to be strictly different from null .

See Also

  • end() - Set the internal pointer of an array to its last element
  • key() - Fetch a key from an array
  • each() - Return the current key and value pair from an array and advance the array cursor
  • prev() - Rewind the internal array pointer
  • reset() - Set the internal pointer of an array to its first element
  • next() - Advance the internal pointer of an array
  • foreach
Read article
PHP / each — DevDocs

each

(PHP 4, PHP 5, PHP 7)

each Return the current key and value pair from an array and advance the array cursor

Warning

This function has been DEPRECATED as of PHP 7.2.0, and REMOVED as of PHP 8.0.0. Relying on this function is highly discouraged.

Description

each(array|object &$array): array

Return the current key and value pair from an array and advance the array cursor.

After each() has executed, the array cursor will be left on the next element of the array, or past the last element if it hits the end of the array. You have to use reset() if you want to traverse the array again using each.

Parameters

array

The input array.

Return Values

Returns the current key and value pair from the array array . This pair is returned in a four-element array, with the keys 0 , 1 , key , and value . Elements 0 and key contain the key name of the array element, and 1 and value contain the data.

If the internal pointer for the array points past the end of the array contents, each() returns false .

Examples

Example #1 each() examples

<?php
$foo = array("bob", "fred", "jussi", "jouni", "egon", "marliese");
$bar = each($foo);
print_r($bar);
?>

$bar now contains the following key/value pairs:

Array
(
    [1] => bob
    [value] => bob
    [0] => 0
    [key] => 0
)
<?php
$foo = array("Robert" => "Bob", "Seppo" => "Sepi");
$bar = each($foo);
print_r($bar);
?>

$bar now contains the following key/value pairs:

Array
(
    [1] => Bob
    [value] => Bob
    [0] => Robert
    [key] => Robert
)

each() is typically used in conjunction with list() to traverse an array, here's an example:

Example #2 Traversing an array with each()

<?php
$fruit = array('a' => 'apple', 'b' => 'banana', 'c' => 'cranberry');

reset($fruit);
while (list($key, $val) = each($fruit)) {
    echo "$key => $val\n";
}
?>

The above example will output:

a => apple
b => banana
c => cranberry
Caution

Because assigning an array to another variable resets the original array's pointer, our example above would cause an endless loop had we assigned $fruit to another variable inside the loop.

Warning

each() will also accept objects, but may return unexpected results. It's therefore not recommended to iterate though object properties with each() .

See Also

  • key() - Fetch a key from an array
  • list() - Assign variables as if they were an array
  • current() - Return the current element in an array
  • reset() - Set the internal pointer of an array to its first element
  • next() - Advance the internal pointer of an array
  • prev() - Rewind the internal array pointer
  • foreach
  • Object Iteration
Read article
PHP / end — DevDocs

end

(PHP 4, PHP 5, PHP 7, PHP 8)

end Set the internal pointer of an array to its last element

Description

end(array|object &$array): mixed

end() advances array 's internal pointer to the last element, and returns its value.

Parameters

array

The array. This array is passed by reference because it is modified by the function. This means you must pass it a real variable and not a function returning an array because only actual variables may be passed by reference.

Return Values

Returns the value of the last element or false for empty array.

Changelog

Version Description
8.1.0 Calling this function on object s is deprecated. Either use get_mangled_object_vars() on the object first, or use ArrayIterator .

Examples

Example #1 end() example

<?php

$fruits = array('apple', 'banana', 'cranberry');
echo end($fruits); // cranberry

?>

See Also

  • current() - Return the current element in an array
  • each() - Return the current key and value pair from an array and advance the array cursor
  • prev() - Rewind the internal array pointer
  • reset() - Set the internal pointer of an array to its first element
  • next() - Advance the internal pointer of an array
  • array_key_last() - Gets the last key of an array
Read article