Tutorial by Examples: o

There are several PHP functions that accept user-defined callback functions as a parameter, such as: call_user_func(), usort() and array_map(). Depending on where the user-defined callback function was defined there are different ways to pass them: Procedural style: function square($number) { ...
// zoo.php class Animal { public function eats($food) { echo "Yum, $food!"; } } $animal = new Animal(); $animal->eats('meat'); PHP knows what Animal is before executing new Animal, because PHP reads source files top-to-bottom. But what if we wanted to create ...
// Animal.php class Animal { public function eats($food) { echo "Yum, $food!"; } } // zoo.php require 'Animal.php'; $animal = new Animal; $animal->eats('slop'); // aquarium.php require 'Animal.php'; $animal = new Animal; $animal->eats('shrimp'); H...
// autoload.php spl_autoload_register(function ($class) { require_once "$class.php"; }); // Animal.php class Animal { public function eats($food) { echo "Yum, $food!"; } } // zoo.php require 'autoload.php'; $animal = new Animal; $animal->e...
// autoload.php spl_autoload_register(function ($class) { require_once "$class.php"; }); // Animal.php class Animal { public function eats($food) { echo "Yum, $food!"; } } // Ruminant.php class Ruminant extends Animal { public function eat...
Static methods and properties are defined on the class/constructor itself, not on instance objects. These are specified in a class definition by using the static keyword. class MyClass { static myStaticMethod() { return 'Hello'; } static get myStaticProperty() { r...
6 Fetch request promises initially return Response objects. These will provide response header information, but they don't directly include the response body, which may not have even loaded yet. Methods on the Response object such as .json() can be used to wait for the response body to load, then p...
If it's not already done in php.ini, error reporting can be set dynamically and should be set to allow most errors to be shown: Syntax int error_reporting ([ int $level ] ) Examples // should always be used prior to 5.4 error_reporting(E_ALL); // -1 will show every possible error, even whe...
It is possible to create an anonymous struct: data := struct { Number int Text string } { 42, "Hello world!", } Full example: package main import ( "fmt" ) func main() { data := struct {Number int; Text string}{42, "Hello worl...
try/catch try..catch blocks can be used to control the flow of a program where Exceptions may be thrown. They can be caught and handled gracefully rather than letting PHP stop when one is encountered: try { // Do a bunch of things... throw new Exception('My test exception!'); } catch (E...
Usually, you have to use git add or git rm to add changes to the index before you can git commit them. Pass the -a or --all option to automatically add every change (to tracked files) to the index, including removals: git commit -a If you would like to also add a commit message you would do: g...
A singleton is a pattern that restricts the instantiation of a class to one instance/object. For more info on python singleton design patterns, see here. class SingletonType(type): def __call__(cls, *args, **kwargs): try: return cls.__instance except AttributeErr...
6 ES6's Object.assign() function can be used to copy all of the enumerable properties from an existing Object instance to a new one. const existing = { a: 1, b: 2, c: 3 }; const clone = Object.assign({}, existing); This includes Symbol properties in addition to String ones. Object rest/sp...
An unordered list can be created with the <ul> tag and each list item can be created with the <li> tag as shown by the example below: <ul> <li>Item</li> <li>Another Item</li> <li>Yet Another Item</li> </ul> This will produce a...
An ordered list can be created with the <ol> tag and each list item can be created with the <li> tag as in the example below: <ol> <li>Item</li> <li>Another Item</li> <li>Yet Another Item</li> </ol> This will produce a numbere...
One common pitfall when using dictionaries is to access a non-existent key. This typically results in a KeyError exception mydict = {} mydict['not there'] Traceback (most recent call last): File "<stdin>", line 1, in <module> KeyError: 'not there' One way to avoid...
To see the log in a prettier graph-like structure use: git log --decorate --oneline --graph sample output : * e0c1cea (HEAD -> maint, tag: v2.9.3, origin/maint) Git 2.9.3 * 9b601ea Merge branch 'jk/difftool-in-subdir' into maint |\ | * 32b8c58 difftool: use Git::* functions instead of...
$ tail -f /var/log/syslog > log.txt [1]+ Stopped tail -f /var/log/syslog > log.txt $ sleep 10 & $ jobs [1]+ Stopped tail -f /var/log/syslog > log.txt [2]- Running sleep 10 &
Creating jobs To create an job, just append a single & after the command: $ sleep 10 & [1] 20024 You can also make a running process a job by pressing Ctrl + z: $ sleep 10 ^Z [1]+ Stopped sleep 10 Background and foreground a process To bring the Process to the f...
The function rand() can be used to generate a pseudo-random integer value between 0 and RAND_MAX (0 and RAND_MAX included). srand(int) is used to seed the pseudo-random number generator. Each time rand() is seeded wih the same seed, it must produce the same sequence of values. It should only be see...

Page 35 of 1038