PHP: Array Operators
Description
This is a Comprehensive PHP array operators tutorial from w3resource.com
List of array operators
Name | Example | Result |
---|---|---|
Union | $x + $y | Union of $x and $y. The + operator appends elements of remaining keys from the right-sided array to the left-handed, but duplicated keys are not overwritten. |
Equality | $x == $y | TRUE if $x and $y have the same key/value pairs. |
Identity | $x === $y | TRUE if $x and $y have the same key/value pairs in the same order and of the same types. |
Inequality | $x != $y | TRUE if $x is not equal to $y. |
Inequality | $x <> $y | TRUE if $x is not equal to $y. |
Non-identity | $x !== $y | TRUE if $x is not identical to $y. |
Example : array union (+) operator
In the following example, the union operator adds the last element from the $b array ($c = $a + $b) with $a array as "c=>" key is not present in $a array. In the second statement ($c = $b + $a) no element is added from $b as all the keys of $a array are present in $b array.
<?php
$a = array("a" => "apple", "b" => "banana");
$b = array("a" => "pear", "b" => "strawberry", "c" => "cherry");
$c = $a + $b; // Union of $a and $b
echo "Union of \$a and \$b : <br />";
var_dump($c);
$c = $b + $a; // Union of $b and $a
echo "<br />Union of \$b and \$a : <br />";
var_dump($c);
?>
Output:
Union of $a and $b: array(3) { ["a"]=> string(5) "apple" ["b"]=> string(6) "banana" ["c"]=> string(6) "cherry" } Union of $b and $a : array(3) { ["a"]=> string(4) "pear" ["b"]=> string(10) "strawberry" ["c"]=> string(6) "cherry" }
View the example in the browser
Example : array equality (==) and identity(===) operators
In the following example equality operator returns true as the two arrays have same key/value pairs whereas identity operator returns false as the key/value of the comparing arrays are same but not in same order.
<?php
$a = array("1" => "apple", "0" => "banana");
$b = array( "banana", "apple");
var_dump($a == $b);
var_dump($a === $b);
?>
Output:
bool(true) bool(false)
View the example in the browser
Previous: String Operators
Next: Incrementing Decrementing Operators
PHP: Tips of the Day
PHP - How do I implement a callback in PHP?
The manual uses the terms "callback" and "callable" interchangeably, however, "callback" traditionally refers to a string or array value that acts like a function pointer, referencing a function or class method for future invocation. This has allowed some elements of functional programming since PHP 4. The flavors are:
$cb1 = 'someGlobalFunction'; $cb2 = ['ClassName', 'someStaticMethod']; $cb3 = [$object, 'somePublicMethod']; // this syntax is callable since PHP 5.2.3 but a string containing it // cannot be called directly $cb2 = 'ClassName::someStaticMethod'; $cb2(); // fatal error // legacy syntax for PHP 4 $cb3 = array(&$object, 'somePublicMethod');
This is a safe way to use callable values in general:
if (is_callable($cb2)) { // Autoloading will be invoked to load the class "ClassName" if it's not // yet defined, and PHP will check that the class has a method // "someStaticMethod". Note that is_callable() will NOT verify that the // method can safely be executed in static context. $returnValue = call_user_func($cb2, $arg1, $arg2); }
Modern PHP versions allow the first three formats above to be invoked directly as $cb(). call_user_func and call_user_func_array support all the above.
Notes/Caveats:
- If the function/class is namespaced, the string must contain the fully-qualified name. E.g. ['Vendor\Package\Foo', 'method']
- call_user_func does not support passing non-objects by reference, so you can either use call_user_func_array or, in later PHP versions, save the callback to a var and use the direct syntax: $cb();
- Objects with an __invoke() method (including anonymous functions) fall under the category "callable" and can be used the same way, but I personally don't associate these with the legacy "callback" term.
- The legacy create_function() creates a global function and returns its name. It's a wrapper for eval() and anonymous functions should be used instead.
Ref : https://bit.ly/2Zmqil0
- New Content published on w3resource:
- Scala Programming Exercises, Practice, Solution
- Python Itertools exercises
- Python Numpy exercises
- Python GeoPy Package exercises
- Python Pandas exercises
- Python nltk exercises
- Python BeautifulSoup exercises
- Form Template
- Composer - PHP Package Manager
- PHPUnit - PHP Testing
- Laravel - PHP Framework
- Angular - JavaScript Framework
- React - JavaScript Library
- Vue - JavaScript Framework
- Jest - JavaScript Testing Framework