Last active
December 18, 2020 02:13
-
-
Save malpaso/537f057632c0fa3e936f54508920df62 to your computer and use it in GitHub Desktop.
PHP Cheat Sheet
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
// Thanks to https://dev.to/rickavmaniac/my-beloved-php-cheat-sheet-7dl | |
//Naming convention | |
$first_name = 'Mike'. // all lower case with underscore separators | |
function updateProduct() // camelCase | |
class ProductItem // StudlyCaps | |
const ACCESS_KEY = '123abc'; // all upper case with underscore separators | |
//output | |
echo 'Hello World'; | |
//variable declaration | |
$name = 'Mike'; //string | |
$active = true; //boolean | |
$number = 25; //integer | |
$amount = 99.95; //float | |
//string concat | |
echo 'Hello ' . $name; | |
//string escape characters \n new line \t tab \\ backslash | |
echo "Hello Mike\nHello David"; | |
//string interpolation | |
echo "Hello $name"; | |
//string number of characters | |
echo strlen($name); | |
// Remove space(s) before and after | |
echo trim($text) | |
// Convert to lowercase / uppercase | |
echo strtolower($email); | |
echo strtoupper($name); | |
// Converts the first character to uppercase | |
echo ucfirst($name); // 'Mike' | |
// Replace text a by text b in $text | |
echo str_replace('a', 'b', $text); | |
// Check if numeric | |
echo is_numeric('59.99'); # true | |
// Round a number | |
echo(round(0.80)); // returns 1 | |
echo(round(0.49)); // returns 0 | |
// Random number | |
echo(rand(10, 100)); # 89 | |
// Ternary operator (true : false) | |
echo $valid ? 'user valid' : 'user not valid'; | |
//Null Coalesce Operator | |
echo $name ?? 'Mike'; //output 'Mike' if $name is null | |
//Null Coalesce Assignment | |
$name ??= 'Mike'; | |
//Null Safe Operator (will return null if one ? is null) | |
echo $user?->profile?->activate(); | |
// Null Safe + Null Coalesce (if null will return 'No user profile') | |
echo $user?->profile?->activate() ?? 'Not applicable'; | |
//Spaceship operator return -1 0 1 | |
$names = ['Mike', 'Paul', 'John'] | |
usort($names, function($a, $b) { | |
return $a <=> $b; | |
} | |
// ['John', 'Mike', 'Paul'] | |
// print variables contents (for debug) | |
var_dump($names); | |
print_r($names); | |
// terminate the current script | |
die(); | |
//Conditionals | |
If ($condition == 10) { | |
echo 'condition 10' | |
} elseif ($condition == 5) { | |
echo 'condition 5' | |
} else { | |
echo 'all other conditions' | |
} | |
//Comparaison operation | |
== // equal no type check | |
=== // equal with type check | |
!= //not equal | |
|| //or | |
&& //and | |
> //greater than | |
< //less than | |
// Match Expression (kind of upgraded switch) | |
$type = match($color) { | |
'red' => 'danger', | |
'yellow', 'orange' => 'warning', | |
'green' => 'success', | |
default => 'Unknown' | |
}; | |
//for loop | |
for ($i = 0; $i < 20; $i++) { | |
echo "i value = " . i; | |
} | |
//while loop | |
$number = 1; | |
while ($number < 10) { | |
echo 'value : ' . $number ; | |
$number += 1; | |
} | |
//do while | |
$number = 1; | |
do { | |
echo 'value : ' . $number ; | |
$number += 1; | |
} while ($number < 10); | |
//Array declaration | |
$names = ['Mike', 'Peter', 'Shawn', 'John']; | |
//add to array | |
$names[] = 'Micheal'; | |
//Spread Operator | |
$names = ['Mike', 'Peter', 'Paul']; | |
$people = ['John', ...$names]; // ['John', 'Mike', 'Peter', 'Paul'] | |
//Remove array entry: | |
unset($names['Peter']); | |
//Array to string | |
echo implode(', ', $names) //output Mike, Shawn, John, Micheal | |
// String to Array | |
echo explode(',', $text); // ['Mike', 'Shawn', 'John'] | |
// Direct access | |
echo $name[1] //output Peter | |
//loop for each array entry | |
foreach($names as $name) { | |
echo 'Hello ' . $name; | |
} | |
// loop break / continue | |
$values = ['one', 'two', 'three']; | |
foreach ($values as $value) { | |
if ($value === 'two') { | |
break; // exit loop | |
} elseif ($value === 'three') { | |
continue; // next loop iteration | |
} | |
} | |
// Number of items in a Array | |
echo count($names); | |
//Associative array: | |
$person = ['age' => 45, 'genre' => 'men']; | |
//Add to ass. array: | |
$person['name'] = 'Mike'; | |
//loop ass. array key => value: | |
foreach($names as $key => $value) { | |
echo $key . ' : ' . $value | |
} | |
// Check if a specific key exist | |
echo array_key_exist('age', $person); | |
// Return keys | |
echo array_keys($person); // ['age', 'genre'] | |
// Return values | |
echo array_values($person) // [45, 'men'] | |
//Array filter (return a filtered array) | |
$filtered_people = array_filter($people, function ($person) { | |
return $names->active; | |
}) | |
// Array map (return transform array): | |
$only_names = array_map(function($person) { | |
return [‘name’ => $person->name]; | |
}, $people) | |
//function declararion | |
function name($param1, $param2 = 'default value') { | |
return $param1 . ' ' . $param2 | |
} | |
// variables params | |
function name(...$params) { | |
return $params[0] . “ “ . params[1]; | |
} | |
// Closure function | |
Route::get('/', function () { | |
return view('welcome'); | |
}); | |
// Arrow functions | |
Route::get('/', fn () => return view('welcome'); | |
//File read | |
$file = fopen("test.txt", "r"); | |
//Output lines until EOF is reached | |
while(! feof($file)) { | |
$line = fgets($file); | |
echo $line. "<br>"; | |
} | |
fclose($file); | |
// File write | |
$file = fopen('export.csv', 'a'); | |
$array = ['name' => 'Mike', 'age' => 45]; | |
//Write key name as csv header | |
fputcsv($file, array_keys($array[0])); | |
//Write lines (format as csv) | |
foreach ($array as $row) { | |
fputcsv($file, $row); | |
} | |
fclose($file); | |
//Throw Error | |
if (someCondition) { | |
throw new Exception('Data format error'); | |
} | |
//Catch the Error | |
try { | |
$db->checkData($data) | |
} catch (Exception as $e) | |
echo $e->getMessage(); | |
} | |
//class declaration | |
class Person | |
{ | |
} | |
// object instantiation | |
$person = new Person | |
//class properties and constructor | |
class Person | |
{ | |
protected $first_name; | |
protected $last_name; | |
public function __construc($first_name, $last_name) { | |
$this->first_name = $first_name; | |
$this->last_name = $last_name | |
} | |
//static constructor | |
public static function create(...$params) { | |
return new self($params) | |
} | |
$person = Person::create(‘Mike’, ‘Taylor’); | |
// class inheritance | |
class Customer extends Person | |
{ | |
public function name() | |
{ | |
parent::name(); | |
echo 'Override method'; | |
} | |
} | |
// Static Method | |
class greeting { | |
public static function welcome() { | |
echo "Hello World!"; | |
} | |
} | |
// Call static method | |
greeting::welcome(); | |
// Static method internal call | |
class greeting { | |
public static function welcome() { | |
echo "Hello World!"; | |
} | |
public function __construct() { | |
self::welcome(); | |
} | |
} | |
new greeting(); | |
// Interface | |
interface Animal { | |
public function makeSound(); | |
} | |
class Cat implements Animal { | |
public function makeSound() { | |
echo "Meow"; | |
} | |
} | |
$animal = new Cat(); | |
$animal->makeSound(); | |
//Trait (mix-in) | |
trait HelloWorld { | |
public function sayHello() { | |
echo 'Hello World!'; | |
} | |
} | |
class Greetings { | |
use HelloWorld; | |
} | |
$object = new Greetings(); | |
$object->sayHello(); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment