PHP5技術者認定試験(上級)に学ぶ、実はよく知らないPHPの仕様 (1)

SierraでXCodeをインストールしたらデフォルトでコマンドラインツールが入っていると思っていたんだけど、なぜかエラーが出た。全機能が使えなかった?のかなぁ。
ノートのSSDをそっくり移動して自作PCに入れたけど、落ちるw原因はメモリの電圧。デフォルトだと高いからエラーする。昔もあったなぁと思いだし、下げる。やはり早くて快適wさて、使ってないノートが2台あるけど(^^;
SideCI のデフォルト設定で gometalinter 使うと gotype も実行されるけど go install がされてないので大量にエラーが出る。自分で disable しろってこと?
密着対戦スピード、メニュー画面右上のオプションでSEをデフォルトから1つでも変更してBボタン押すと100%エラーで落ちる。
デフォルトで、標準入力はキーボード、標準出力は画面、標準エラー出力は画面という設定となっている。 #lpic
アラートログファイルに記述される主な内容:①発生したすべての内部エラー②ブロック破損エラー③管理操作のログ履歴④共有サーバプロセスに関するエラーとメッセージ⑤インスタンス起動時のデフォルト値以外の初期化パラメータ値
デフォルトで「複数ブロックマッチング」ボタンを押さないようにするだけでも対策ができそうなものですが… とりあえずPCの方はファイルチェックして自分でもエラーが起きないようにできるだけ自己防衛します
エラー品(デフォルト)
Herokuデフォルトのエラーページそういえばデザイン変わったんだったな。
ライオンズにおけるヤフオクドーム以上に中日における神宮は鬼門だよ。仕事終わりに駆けつけても先発Pはとっくに降りてたりとんでもないエラー見たり大逆転されたりサヨナラ負けはデフォルト。それでもドラファン関東民は通い続ける。敬礼。アーメン。
特に、グラフィックを扱うPCでは言われているより、意外と顕著に出てめんどい~。対策されたMBだって、結局、デフォルトのタイミングをエラーが起き難い設定値にしただけなので、す~っかり忘れてハマってました orz はぁ。

5技術者認定試験(上級)

資格試験に向けて勉強中です
勉強していて、PHPについて実は知らなかった/勘違いしていたことが幾つかあるため
参考書の内容を抜粋して記載します。(抜粋するとは言っていない)

関数

関数とは

  • ひとまとまりのコードに名前をつけたもの
  • 入力を受ける変数を パラメータ 出力を 返り値 と呼ぶ
  • 関数には ユーザ定義関数組み込み関数 がある
  • 関数の呼び出しが、その関数の定義より前に記述されていても問題ない

マイナーな細かい仕様

  • 関数名の大文字・小文字は 区別されない
  • 関数は入れ子にできる
    — 以下のbar()はfoo()の実行後であれば、fooの外でも呼び出せる
function foo(){
    function bar(){
        return "bar";
    }
}
foo();
bar();

変数

  • グローバルスコープ と 関数レベルのスコープ がある
  • 関数からグローバル変数を呼ぶ場合は global $hensu のように宣言が必要
  • (デフォルトでは)関数内からグローバルスコープにアクセスできない
  • 通常、関数内の変数は呼び出し後にクリアされるが、 static $number = 0 のように宣言することで、呼び出し後も保持される変数となる
    — 上記の場合 0 が代入されるのは最初の実行時のみ
    — 初期化に使えるのは 定数 または リテラル のみ。変数や式は使えない。
    static $number = $x はエラーになる

関数のパラメータ

  • 値渡しと参照渡しがある
    — 参照渡しは function foo(&$x){ のように & を付加する
    — 参照渡しで定義した関数に変数以外を渡すと Fatal Error になる
  • function($x = 10) のようにしてデフォルト値を設定できる。
    function(&$x = 10) のように、 参照渡しでもデフォルト値を設定できる
  • 可変長引数も利用可能
    — 通常の引数の定義は必要なく、以下の関数を使用して取得
関数名 機能
func_num_args() 引数の数を取得
func_get_arg($index) 指定indexの引数を取得
func_get_args() 引数を配列で取得

関数の返り値

  • デフォルトでは return で指定された値のコピーを返す
  • 参照を受け取る場合は、 & を 関数名の前につける
function &foo(&$x){
    return $x;
}
$value = &foo

可変関数

  • 変数名に関数名の文字列を設定して呼び出すことが可能
$func_name = "printf";
$func_name("hello");
  • 対応する関数が無いとエラーが発生するので、 function_exsists($func_name); でチェックしよう
  • echo()isset() の構造言語は、この方法で 呼び出せない (エラーになる)
    — (だが黒本には構造言語について説明がない)

匿名関数 create_function

  • 他と衝突しない、ランダムな関数名となる
  • create_function(string $arg, string $code ) で定義
    — $付きの変数名を記載する関係上、シングルクォートで記載しましょう
$method = create_function('$x', 'echo $x;');
$mechod('hello');
  • 匿名関数は array_filter() などの引数としても利用可能
[紹介元] PHPタグが付けられた新着投稿 – Qiita PHP5技術者認定試験(上級)に学ぶ、実はよく知らないPHPの仕様 (1)

  • コメント

    1. 匿名希望
      2017/07/25(火) 15:41:14

      SideCI のデフォルト設定で gometalinter 使うと gotype も実行されるけど go install がされてないので大量にエラーが出る。自分で disable しろってこと?

    2. 匿名希望
      2017/07/25(火) 15:41:14

      ノートのSSDをそっくり移動して自作PCに入れたけど、落ちるw原因はメモリの電圧。デフォルトだと高いからエラーする。昔もあったなぁと思いだし、下げる。やはり早くて快適wさて、使ってないノートが2台あるけど(^^;

    3. 匿名希望
      2017/07/25(火) 15:41:14

      デフォルトで、標準入力はキーボード、標準出力は画面、標準エラー出力は画面という設定となっている。 #lpic

    4. 匿名希望
      2017/07/25(火) 15:41:14

      密着対戦スピード、メニュー画面右上のオプションでSEをデフォルトから1つでも変更してBボタン押すと100%エラーで落ちる。

    5. 匿名希望
      2017/07/25(火) 15:41:14

      アラートログファイルに記述される主な内容:①発生したすべての内部エラー②ブロック破損エラー③管理操作のログ履歴④共有サーバプロセスに関するエラーとメッセージ⑤インスタンス起動時のデフォルト値以外の初期化パラメータ値

    記事に戻る

関連記事