2012年10月31日水曜日

PHPのスコープのお話についてのお話

こちらの記事をたまたま見て気になったので投稿。
PHPでforeachなどを使う時の注意点。ブロックスコープのお話。

確かにループで一時的に必要な変数にスコープが無いと都合が悪いのはその通りなんだけど、解決策にモヤモヤ…

スコープが欲しいところに無いなら作ればいいわけで

$fruits = array('banana', 'melon', 'orange');
function joinFruits($fruits) {
$result = '';
foreach ($fruits as $fruit) {
$result .= $fruit;
}
return $result;
}
$fruits_str = joinFruits($fruits);
var_dump($fruit); // => undefined variable error
var_dump($fruits_str); // => bananamelonorange
view raw fruits.php hosted with ❤ by GitHub

関数に入れればスコープが作れる。

もっと言えばクラスにすればいいと思う。

class Fruits {
var $_data;
public function __construct($data) {
$this->_data = $data;
}
public function join() {
$result = '';
foreach ($this->_data as $datum) {
$result .= $datum;
}
return $result;
}
}
$fruits = new Fruits(array('banana', 'melon', 'orange'));
var_dump($fruits->join()); // => bananamelonorange
view raw fruits.php hosted with ❤ by GitHub
2012年10月23日火曜日

Backboneを学ぶ #0 環境構築

転職して新しい職場ではBackboneを使いそうなのに、今までこれで何も作ったことが無いので勉強することにしました。
ひと通り出来るようになるまで続けたいので連載にしてみます。まずは開発環境の構築など

  • サーバサイド
    • Sinatra (マイクロフレームワーク)
    • haml (テンプレートエンジン)
    • scss (cssメタ言語)
    • CoffeeScript (javascriptメタ言語)
    • Shotgun (開発用rackサーバ)
  • クライアントサイド
    • jquery.1.8.2.js
    • underscore.js
    • backbone.js
  • リポジトリ
  • サーバ