今回はPHP基本の書き方を紹介します。
PHPタグ
PHPコードを書く前に、PHPタグを書かなければならない。以下の3種類があります。
$aa=’sdf’;
echo $aa;
?>
<?php
$aa=’sdf’;
echo $aa;
「short_open_tag = on」に変更する
<?
$aa=’sdf’;
echo $aa;
?>
コメントアウト
コメントアウトは三つ方法があります。
1行コメントアウト
# コメント
複数コメントアウト
* コメント
*/
内容出力
以下の五つ関数があります。
echo $var_string;
echo($var_string);
print:内容を出力し、戻り値があります。1成功
print $var_string;
print($var_string);
print_r:配列内容を出力する
print_r($array);
var_dump:詳細内容を出力する
var_dump($array);
変数
・PHPの変数は$で始まります。
・最初文字は英文字で
・英文字、数値、「_」を使えます。
・大小文字区別
$ab=”this is ab”;
?>
可変変数
変数名を可変にできると便利なことが時々あります。可変変数では、変数 名を動的にセットし使用できます。
<?php
$ab=”totom”;
$bb=”ab”;
echo $$bb; //totomを出力する
?>
参照渡し
参照渡しは、変数のコピーではなく変数のシンボルテーブル上の位置を渡してエイリアスのようにしているようです。すなわち、元の変数が書き換わってしまうようです。
$ab=”totom”;
$bb=$ab;
$bb=”change”;
echo $ab . “\n”; //totomを出力する
$cc=&$ab;
$cc=”change2″;
echo $ab . “\n”; //change2を出力する
?>
定数
以下の二つ方法があります。
define(定数名, 値, 大小文字区分);
const 定数名=値;
define(“FOO”, “something”);
// 定数利用
echo FOO;
// ②特殊文字で定義
define(‘%-%’, ‘tome’);
// 定数利用
echo constant(‘%-%’);
// ③定義していない場合、定義する
if (!defined(‘FOO’)) define(‘FOO’, “something”)
// ④constで定義
const NAME=”tom”;
ヒアドキュメント
長い文字列を変数に代入する場合は以下のような書式で記述します。
$変数 = <<<終了の文字列
「文字列を記述」
終了の文字列;
?>
※ 終了の文字列には大文字のアルファベットを使います。よく見かけるのは「EOM」「EOF」「EOD」ですが、「ABC」でも何でも構いません。ちなみに「EOM」は End Of Message、「EOF」は End Of File、「EOD」は End Of Document の略です。
※終了の文字列の前にスペースが存在できない。
配列
$arr=array(‘tom’,’berry’);
// 使う
echo $arr[0];
// ②配列定義
$arr=[‘aa’,’bb’];
// ③連想配列
$emp=array(‘name’=>’test1’,’age’=>29);
// 使う
echo $emp[‘name’];
// ④php7.1以降の場合
$num1=10;
$num2=20;
[$num1,$num2]=[$num2,$num1]; // 二つ変数の値を交換する
// ⑤文字列を配列として使う(php7.1以降)
echo ‘abc'[0]; // aを出力する
echo ‘abc'[-1]; // cを出力する
エラー制御演算子
PHP はエラー制御演算子(@
)をサポートしています。
null合体演算子(php7.0以降)
条件分岐(if)
//処理内容
}
//処理内容
} else {
//処理内容
}
//処理内容
} elseif (条件) {
//処理内容
} else {
//処理内容
}
//処理内容
elseif(条件):
//処理内容
else:
//処理内容
endif
条件分岐(switch)
case 定数:
// 処理内容
break;
case 定数:
// 処理内容
break;
default:
// 処理内容
}
case 定数:
// 処理内容
break;
case 定数:
// 処理内容
break;
default:
// 処理内容
endswith;
ループ(for)
//処理内容
}
//処理内容
endfor;
ループ(while)
//処理内容
}
//処理内容
endwhile;
ループ(do…while)
}while(条件)
ループ(foreach)
//処理内容
}
//処理内容
}
//処理内容
endforeach;
関数
※関数のパラメータはデフォルトが値渡しです。
//処理内容
}
参照渡し
//処理内容
}
パラメータのデフォルト値
//処理内容
}
パラメータ取得関数
func_num_args(); // 個数
func_get_args(); // 値
}
可変パラメータ
//argsは配列
}
パラメータの型の宣言(php.7以降)
※使える「string,int,float,bool,配列(array)」
//argsは配列
return 100;
}
可変関数
echo ‘abc’;
}
$aa=’show’;
$aa();
無名関数
$fun=function(){
//処理内容
};
// 実行
$fun();
変数のスコープ
下記のコードではエラーとなります。
$num=10;
$fun=function(){
echo $num; //$numを使えない
};
// 実行
$fun();
$GLOBALSキーワード
$num=10;
$fun=function(){
echo $GLOBALS[‘num’]; //10を出力する
};
// 実行
$fun();
globalキーワード
$num=10;
$fun=function(){
global $num;
echo $num; //10を出力する
};
// 実行
$fun();
staticキーワード
$fun=function(){
static $num=10;
$num++;
echo $num;
};
// 実行
$fun(); //11を出力する
$fun(); //12を出力する
useキーワード
$num=10;
$fun=function() use($num) {
echo $num;
};
// 実行
$fun(); //10
外部ファイル読み込み
※ファイルが存在しない場合、エラーとなり、後ろのコードが実行されない。
※ファイルが存在しない場合、ワーニングとなり、後ろのコードが実行されます。
include_once ファイル;
※複数を実行しても、1のみ
エラーログ処理
php.iniファイルに以下の設定ができます。
display_errors = On; # エラー情報をブラウザに出力
log_errors = On; #エラー情報をログファイルに出力
error_log=”; #エラーログファイルの保存パス
使用例
$debug=false;
ini_set(‘error_reporting’,E_ALL);
if($debug){
ini_set(‘display_errors’,’on’);
ini_set(‘log_errors’,’off’);
}else{
ini_set(‘display_errors’,’off’);
ini_set(‘log_errors’,’on’);
}