PHP

Last-modified: 2013-11-20 (水) 00:24:06

テスト   [#d7efde8a]

インストール

  • PHPをApacheに認識させる設定を追記 ※cgiの設定は実施しない
    AddType application/x-httpd-php .php .inc
    AddType application/x-httpd-php-source .phps
     libphp5がなくて気づいた
    LoadModule php5_module libexec/libphp5.so

Coding rules

Tech : 技術的知識

framework

Syntax:構文

  • true false判定について
    • trueの場合数値判定は 1
      function isEmpty() { return true; }
      echo "isEmpty:".isEmpty();  =>  isEmpty: 1
  • falseの場合数値判定は null
    function isEmpty() { return false; }
    echo "isEmpty:".isEmpty();  =>  isEmpty:
  • シングルとダブルクォーテーションの使い分け
    • ' と " は基本どちらでも自由。シングルは英字文章に入ってくるので出力したい場合は \'で表す
       print('I'm dying');
        →  print('I\'m dying'); =  print("I'm dying");
  • 関数オーバーロードするには
    • phpでは、オーバロードの概念はない
      。名前が同じだが別の関数となるため、同じ名前だとエラーになる
      class A {
        function methodA($x) {}
        function methodA($x, $y ) {}
      }
classB extends A {
  public functionB() {}
}

※ private はoverride できない

  • bool判定
    • if判定で変数のみでデータ格納されているか判定できる
       $x = abcde;
       if($x)    → true  : 文字入ってる場合はtrue
       if(!$x)   → false : 文字入ってなければfalse
  • GETで送るには → method指定
     <form action="/hoge.php" method="get">
    • GET受け取るには → $_REQUEST
       $parameter =  $_REQUEST["param_name"];
  • POSTで送るには → method指定
     <form action="/hoge.php" method="post">
    • POST受け取るには → $_POST
       $parameter =  $_POST["param_name"];
  • セッション開始には
     session_start();
     まいど関数使用が嫌なら、 php.ini ファイルの以下を設定
     :Initialize session on request startup
     session.auto_start = 1
  • upload 機能を作るには?
    • Form :form へのenctypeの設定
    • inputタグの type="file"の作成
       <form action="uploadFile.php" method="post" enctype="multipart/form-data">
       <dl>
       <dt>ファイル:</dt><dd><input type ="file" name="upfile" /> </dd>
       </dl>
       <input type="submit" value="upload" >
       </form>
    • Server : $_FILESで受け取る。受け取った$file は連想配列
       $file = $_FILES["name属性"];
    • tmp_name を使用する。デフォで入ってる
       move_uploaded_file($file["tmp_name"], $filePath);
  • クラスを継承するには
     class child_A  extends A {
     }
  • subumitを使用しない画面遷移をするには
    • 1. form のaction は "":自分のページを指定
      <form action="" method="post">
    • 2. 関数内にheader 用意。 遷移先を指定
       header("Location: "遷移ページ"); →   header("Location: "check.php");
  • 連想配列使うには? 
  • 連想配列へ追加するには
    • array["key=valueを使う
       $fruits = array("apple" => "りんご");
       $fruits["orrange"] = "みかん";

DB

Error集: PHPであったトラブル一覧

  • クラスがrequireできない
    • require でのパス指定の問題
      呼び出したクラス内でもrequireを使用していると、パスが正しくない場合は返答がなくなる
      対処方法:
      1.[http://dev.ontheroad.jp/archives/6893 dirname(__FILE__)でパス指定を解決]
      2.プログラムないでパス関数を設定
      1で対応。大文字・小文字を間違えてると読み込まないので注意
       require_once (dirname(__FILE__).'/../DataBase/QueryPresenter.php');

参考書: 参考資料一覧