正規表現
関数の命名規則
// 値渡し:1をコピーして代入
関数名は関数に付ける任意の名前
関数名では大文字小文字は区別されない
1文字目使用できる文字
[ a ~ z ]
[ A ~ Z ]
[ Ox7F ~ 0xFF ] コードを持つ文字
[ _ ] アンダーバー
2文字目以降
[ 0 ~ 9 ]数字が上記に加わる
一度定義されている関数名は使用できない
値渡しと参照渡し
// 値渡し:1をコピーして代入
$val = 1;
$result = $val;
//参照渡し:値の入れ物を参照先として代入 &を使う
$value = 1;
$result =& $value;
$a = 2;
$b =& $a; // 変数aを&をつけて代入
$a = 10; // 変数aの値を変更
echo $b;
# 結果
10
//関数でも参照渡しができる
function add (&$number) { // 「&」を引数につける
return ++$number;
}
ob_start():出力される箇所を出力せず、変数に入れる
// 記録開始
ob_start();
jsonImageOne($ary); // <- 通常は、ここで出力されるものを記録して
$data = ob_get_contents(); // 記録結果を変数に代入
ob_end_clean(); // 記録終了
3項演算子:エルビス演算子:null合体演算子
//基本
$a ? $a : $b;
//上記の省略 ?: エルビス演算子 php5.3以降
$a ?: $b;
//null合体演算子 ?? php7以降
//存在しない値にアクセスしてもPHP Noticeを出さない
/ $_GET['user'] を取得します。もし存在しない場合は
// 'nobody' を用います。
$username = $_GET['user'] ?? 'nobody';
// 上のコードは、次のコードと同じ意味です。
$username = !is_null($_GET['user']) ? $_GET['user'] : 'nobody';
//未定義のケースも考慮すると、
!empty($a) ? $a : $b
public function __construct(array $config = [])
{
$this->handler = $config['handler'] ?? new DefaultHandler();
$this->callback = $config['callback'] ?? null;
$this->trial = $config['trial'] ?? 10;
}
PHP8以後、名前付き引数が可能に
// これまで
array_fill(0, 100, 50);
// 名前付き引数
array_fill(start_index: 0, num: 100, value: 50);
// 順番はバラバラでよい
array_fill(value: 50, num: 100, start_index: 0);
引数に連想配列を使えば、名前付き引数を使わなくても解決
順番がバラバラ、省略してもOK
function fuga(array $config = []) {
//php7以降なら有効
$hoge = $config['hoge'] ?? 'hoge';
$callback = $config['callback'] ?? null;
$trial = $config['trial'] ?? 10;
var_dump($hoge);
}
fuga();
$conf = array('apple'=>'りんご', 'peach'=>'もも', 'hoge'=>'バナナ');
fuga($conf);
//PHP5での動作を確保したい場合は、null合体演算子の代替を使う
$hoge = !is_null($config['hoge']) ? $config['hoge'] : 'hoge';
$callback = !is_null($config['callback']) ? $config['callback'] : null;
$trial = !is_null($config['trial']) ? $config['trial'] : 10;