もろもろ

文字数とか

全角チェック

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
<?php
    /**
     * @assert ('文字列です。') === true
     * @assert ('abcd1234+:;!') === false
     * @assert ('全角abcd') === false
     * @assert ('半角カナ') === false
     */
    function is_zen_preg_match ($str) {
        if (!preg_match("/(?:\xEF\xBD[\xA1-\xBF]|\xEF\xBE[\x80-\x9F])|[\x20-\x7E]/", $str)) {
            return true;
        } else {
            return false;
        }
    }

名前でメソッドを呼ぶ

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
<?php

class Checker {
    function check_name($value) {
        return false;
    }
}

$profile = array(
    'name' => 'my name',
    'phone' => '333-3333-3333'
);

$checker = new Checker();

function check($checker, $key, $value ){
    $method = "check_$key";
    if(method_exists($checker, $method)){
        return $checker->$method($value);
    }
    return true;
}

foreach($profile as $key => $value ){
    echo $key, ":", check($checker, $key, $value ), "\n";
}

map関数

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
<?php

$array = array('a' => 1, 'b' => 2, 'c' => 3);

$array2 = array_map(function($val){ return $val * 2 ; }, $array);

foreach($array as  $k => $v ){
    echo "$k .... $v\n";
}

foreach($array2 as  $k => $v ){
    echo "$k .... $v\n";
}
1
2
3
4
5
6
7
$ php tests_map.php
a .... 1
b .... 2
c .... 3
a .... 2
b .... 4
c .... 6

インスタンスクラスのstatic メンバーへのアクセス

1
2
3

$model_class = get_class($instance);
$value = $model_class::$static_value;

配列要素の削除

1
unset($array[$i]);

mysql

-接続確認

# /vagrant/php/vendor/bin/psysh
Psy Shell v0.5.2 (PHP 5.5.27 ― cli) by Justin Hileman
>>> (new mysqli('localhost', 'root', 'password'))->query('show databases')->fetch_all();

error

  • php.ini
display_errors = on
error_reporting = E_ALL

templates

TOP 5 PHP TEMPLATE ENGINES

  • Mustache
  • Blade Haml / Jadeインスパイア (Laravel)
  • Smarty
  • Twig Jinjaインスパイア (Symfony)
  • Volt Jinjaインスパイア (Phalcon)