Well I decided to teach my self Coffeescript and was hoping to find a little tutorial for people coming from a PHP background, but was surprised when the internet came up short.
Well, see a need.. fill a need!
Well, see a need.. fill a need!
So heres a few examples from Charles Wood's CoffeeScript Basics and I have added what would be the equivalent PHP to hopefully give people a reference point.
CoffeeScript: Comment
PHP
#this is a comment
PHP
//this is a comment
CoffeeScript: Function
PHP
intro = (name)-> "Hi " + name Console.log intro("Brian")The last line in a coffeescript function is returned
PHP
function intro($name){ return 'Hi'.$name; } echo intro('Brian');
CoffeeScript: Default Parameter
PHP
intro = (name, gender = "friend")-> "Hi " + name + " my " + gender Console.log intro("Brian")
PHP
function intro($name, $gender = 'friend'){ return 'Hi'.$name.' my '.$gender ;} echo intro('Brian');
CoffeeScript: Modify A Argument's Value
PHP
intro = (name, gender = "friend")-> gender = gender +"!"; "Hi " + name + " my " + gender Console.log intro("Brian")
PHP
function intro($name, $gender = 'friend'){ $gender .= '!'; return 'Hi'.$name.' my '.$gender ; } echo intro('Brian');
CoffeeScript: String Interpolation
PHP
myScore = 6 console.log "my score was #{myScore}"
PHP
$myScore = 6; echo "my score was $myScore"
CoffeeScript: Chained Comparisons
PHP
myScore = 6 pass = 10 > myScore > 5
PHP
$myScore = 6; $pass = 10 > $myScore ? $myScore > 5 : false;
CoffeeScript: Hash Map
PHP
items = {a:'z', b:'y', c:'x'}
PHP
$items = ['a'=>'z', 'b'=>'y', 'c'=>'x'];
CoffeeScript: Array
PHP
items = [ 1,0,0 0,1,0 0,0,1 ]CoffeeScript will automatically add a comma at the end of each line in an array is not present
PHP
$items = [ 1,0,0, 0,1,0, 0,0,1 ];
CoffeeScript: If
PHP
x = true y = false if x and y console.log true else console.log false
PHP
$x = true $y = false if( $x and $y) echo 'true'; else echo 'false';Here the example of using endif
if( $x and $y): echo 'true'; else: echo 'false'; endif
CoffeeScript: Ternary Operator
PHP
if x or y then console.log true else console.log falsecoffee supports and, or
PHP
echo $x or $y ? 'true' : 'false'
CoffeeScript: Not With Assignment
PHP
x = null x or= true
PHP
$x = null; $x = !$x ? true : $x;for this, the ternary operator must have an else. So i'm using it's own value to simulat no effect.
CoffeeScript: Splats(Function Overloading)
PHP
party = (first, second, rest...) -> console.log first console.log second console.log rest
PHP
function party(first, second){ echo $first; echo $second; $rest = func_get_args(); array_shift($rest);//remove first array_shift($rest);//remove second echo implode(',',$rest); }You don't need implode, I'm just using it to print the exter value from this array.
CoffeeScript: For In/Each
PHP
hello = {en: "hi", fr:"Boj", it,"bon"} speak = (lang) -> console.log hello[lang] speak language for language in ["en","fr","it"]
PHP
$hello = ['en'=>'hi', 'fr'=>'Boj', 'it'=>'bon']; function speak($lang){ global $hello; echo $hello[$lang]; } foreach(['en','fr','it'] as $language) speak($language);
CoffeeScript: Sequence
PHP
countdown = (num for num in [10..1]) countdown = (num*2 for num in [10..1])
PHP
$countdown = range(10,1) $countdown = range(10, 1, 2)
CoffeeScript: Parsing An Array
PHP
ages = {chuck:31, steven:29, julie:27} tell = for person, age of ages person + " is "+age+" years old"
PHP
$ages = ['chuck' => 31, 'steven' => 29, 'julie' => 27]; foreach($ages as $person=> $age) $tell[] = $person.' is '.$age.' years old';
CoffeeScript: Class
PHP
class Vehicle move: (miles) -> console.log miles+"miles" car = new Vehicle car.move(1000)
PHP
class Vehicle{ public function move($_miles){ echo $_miles.' miles'; } } $car = new Vehicle(); $car->move(1000);
CoffeeScript: Attributes
PHP
class Vehicle setMiles: (@miles) getMiles: -> @miles car = new Vehicle car.setMiles(1000) console.log car.getMiles
PHP
class Vehicle{ public $miles public function setMiles($_miles){ $this->miles = $_miles; } public function getMiles(){ return $this->miles; } } $car = new Vehicle(); $car->setMiles(1000); echo $car->getMiles();
CoffeeScript: Inheritance
PHP
class Vehicle constructor: (@name) -> move: (miles) -> console.log @name + " drove "+miles+"miles" class VWBug extends Vehicle move: -> console.log "fast" super 100 class Truck extends Vehicle move: -> console.log "slow" super 20 mater = new Truck "Mater" her = new VWBug "Herbie" mater.move() her.move()
PHP
class Vehicle{ private $name; public function __constructor($_name){ $this->name = $_name; } public function move($_miles){ echo $this->name.' dove '.$_miles.' miles'; } } class VWBug extends Vehicle { public function move($_miles = 100){ echo 'fast'; parent::move($_miles); } } class Truck extends Vehicle{ public function move($_miles = 50){ echo 'slow'; parent::move($_miles); } } $mater = new Truck("Mater"); $her = new VWBug("Herbie"); $mater->move(); $her->move();
No comments:
Post a Comment