SlideShare una empresa de Scribd logo
1 de 258
Descargar para leer sin conexión
第1回PHP勉強会
∼PHPは怖くない、友達さ∼
自己紹介
玉田 浩康
経歴
• 2004年 愛知学院大学卒業
• 2004∼2007年 ニューキャスト

雑用兼(自称)デザイナーとしてサイト制作に携わる。
• 2007∼2009年 テクノプロ・エンジニアリング 

画面設計とテスター業務をせこせことやる。
• 2009年∼現在 アビリティコンサルタント

時にはコーダー、時にはエンジニア、時には○○と色々なことを
やる。
PHPの基礎知識
PHPとは
PHPとは
PHP(PHP:Hypertext Preprocessor)とは、動的
なウェブページを表現するために動的なHTMLを出力
することに特化したプログラミング言語、またはその
処理系である。非常に高速に動作するCGIの仲間であ
る。
PHPとは
つまり
PHPとは
サーバサイドで実行するプログラムのひとつ
PHPとは
他にもサーバサイドスクリプトには
• ASP
• JSP
• Perl
• Ruby
サーバーサイド・スクリプトとは
サーバーサイド・スクリプトとは
Webサーバ上で動作し、Webサーバ上でプログラム
の実行が要求されるたびに、結果をウェブブラウザに
対して送信するようなプログラムである。
サーバーサイド・スクリプトとは
リクエスト
サーバサイド
クライアントサイド
スクリプト
実行
レスポンス
PHPで出来ること
PHPで出来ること
• Windows, Linux, Mac様々なOSで動作するので、環境を選
ばず使用できる。
• HTMLだけでなく、XMLや画像、PDF、Flashムービーも出力
できる。
• 様々なデータベースにもサポートしていて、拡張モジュールも
充実している
• HTTP, POP3など多くのプロトコルを用いる他のサービスの
状態を追跡する 機能もサポートしている。
PHPで出来ること
考えているWebサービス、なんでも出来ます。
必要なものは
・アイデア
・それを形にするロジック
PHPで出来ること
PHPで構築されているWebサービス
・Facebook
・ニコニコ動画
PHPのメリット・デメリット
メリット デメリット
比較的覚えやすいプログラミング言語である 標準関数の名前が長いと言われることがある
標準関数が豊富に存在する 標準関数が多すぎだと言われることがある
商用利用でも無料で使うことができる トラブルの原因が特定しにくいことがある
データベースとの連携に優れている プログラマーの力量に差が付きやすい
解説サイトや書籍が充実している
プログラミング上級者の中には
PHPを嫌う人もいる
ほとんどのレンタルサーバーで
使うことができる
多少コードがあやふやでも
表面上は動いてしまう
PHPの記述方法
PHPの記述方法
<?php ∼ ?>の開始タグ、終了タグで囲います。
PHPで終わるときは、終了タグが省略できます。
PHPの記述方法
プログラムを記述する時には文字を出力したり計算を
行ったりといった処理を記述していくことになります。
その1つ1つの処理を文といいます。

1つの文は1行に記述するのが一般的ですが複数の文
を1つの行の中に記述することも可能です。
PHPの記述方法
例えば文字を出力するという文を3つ記述する場合は
次のように記述します。

!
!
文の最後にセミコロンが付けられています。PHPでは
セミコロンが現れるまでを1つの文と扱います。
<?php

echo こんにちは ;

echo こんにちは ;

echo こんにちは ;

?>
PHPの記述方法
セミコロンまでが1つの文なので、1つの行の中に複
数の文を記述しても構いません。先ほどの例は次のよ
うに記述することも可能です。
<?php

echo "こんにちは";echo "こんにちは";echo "こんにちは";

?>
PHPの記述方法
文の区切りの例外としてPHP終了記号の直前の文については
セミコロンを省略できます。よって先ほどの例は次のようにも
記述することが可能です。







ただ後から文を追加した場合にセミコロンを記述し忘れるこ
ともありますので基本的には文の最後にセミコロンを付けるよ
うにして下さい。
<?php

echo こんにちは ;

echo こんにちは ;

echo こんにちは 

?>
空白と改行
空白と改行
PHPのプログラムではプログラム中の空白は無視され
ます(文字列の中の空白などは別です)。その為、プロ
グラムの字下げなどは自由に行うことが出来ます。
空白と改行
例えば次のように文の行頭を字下げして記述しても実
行結果に影響はありません。
<?php

echo "こんにちは";

echo "こんにちは";

echo "こんにちは";

?>
空白と改行
改行も空白と同じ扱いです。そこであまり意味はありま
せんが次のように記述することもできます。








関数など使う場合に引数が多いと文が非常に長くなる場
合があります。その場合は任意の位置で改行を行いプロ
グラムを見やすくすることもできます。
<?php

echo

こんにちは ;

echo こんにちは ;

?>
コメント
コメント
プログラムを記述していく上で、この部分はどんな目
的でプログラムを記述していたかを残しておくと後か
らメンテナンスを行う上で役に立ちます。単に説明だ
けのために記述する文をコメントといいます。
コメント
コメントはPHPプログラムが実行される際に無視され
ますのでプログラムの出力結果などには影響しません。
コメント
PHPでプログラム中にコメントを記述する場合、3種
類の方法が用意されています。
「#」を使ったコメント
まず最初の方法は「#」を使用する方法です。次のよ
うに記述します。
#コメント
「#」を使ったコメント
プログラム中に「#」が現れた場合、「#」から行末ま
でをコメントとして扱います。「#」は文の先頭に記述
しその行を全てコメントとしてもいいですし、文の途中
で記述してその位置より右側をコメントとしてもいいで
す。






<?php

# 作成日 2011/12/11



echo "こんにちは"; # あいさつを出力

?>
「//」を使ったコメント
2つ目の方法は「//」を使用する方法です。次のよう
に記述します。

 //コメント
「//」を使ったコメント
「#」の代わりに「//」を使用しているだけで使い方
は同じです。






<?php

// 作成日 2011/12/11



echo "こんにちは"; // あいさつを出力

?>
「/*」と「*/」を使ったコメント
ここまでは特定の1行だけをコメントにする方法です
が、3つ目の方法である「/*」と「*/」を使用する方
法は特定のブロックをまとめてコメントする場合に使
用します。次のように記述します。




/*

コメント

コメント

*/
「/*」と「*/」を使ったコメント
プログラムの中で「/*」が現れた場合、「*/」が現れるまでを全て
コメントとして扱います。
例えば次のように記述します。











<?php

/* 

作成日 2011/12/11

作成者 山田 太郎

開発環境 PHP5.x

*/



echo "こんにちは"; /* あいさつを出力 */

?>
データベースの基礎知識
データベースとは
データベースとは
データの集合体のこと
データベースとは
テキストエディタ作成し

データ形式が明確なデータも

データベースの一種になります。
山田太郎,男性,1980-01-01
山田花子,女性,1985-05-10
member.txt
データベースとは
ただしWordやExcelなど、

固有のソフトに依存するファイルは

データベースではないです。
データベースとは
様々なプログラムから、データの読み書きできるもの
がデータベースになります。
データベース
プログラムA
プログラムB
プログラムC
データベースの条件
• 特定のプログラムに依存しないこと(プログラムと独立した
データ・ファイルであること)
• データの格納形式が公開されていること(任意のプログラム
から読み書きできること)
• 容易にデータを操作できること(登録、読み出し、更新、削
除、など)
データベースの構造やデータの格納形式のことをスキーマ
(schema)と呼びます。
それだとめんどくさい
そこで出てくるのが

データベース管理システム
(DBMS)
データベース管理システムとは
データベースを構築するために必要なデータベース運
用、管理のためのシステム、およびそのソフトウェア
のことです。
プログラム データベース

エンジン
データ
データベース管理システムとは
主なデータベース管理システムは
• MySQL
• PostgreSQL
• SQL Server
• Oracle
Webで使われることが多い
データベース管理システムの比較
MySQL PostgreSQL
特徴
LAMPに組み込まれ、WEBサイトに
つかうDBの定番となっている。
updateは削除と挿入を実行。これに
より容量の肥大化がおきる。
ライセンス
GPLライセンス

商用ライセンス
BSDライセンス
構築・開発の
難易度
低

(最も使いやすい)
中

(やや操作やコマンドで難しい部分
がある)
速度
高速

(PostgreSQL、Oracleより速い)
高速

(MySQLより遅い)
SQL ○ ○
実行環境を整えよう
PHPをブラウザで動かすには
WebサーバとPHPのインストールが必要です!
一つ一つインストールしても

いいんですが…
環境変数も追加しないと
いけないからめんどくさい
そこでこの勉強会では

XAMPPを使います!
XAMPPの特徴
• PHP, Perl Apache, MySQLを同時に簡単にインス
トールすることができる
• 完全無償
• Windows, Mac OSX, Linuxに対応
XAMPPをインストール際の注意点
• 最新のXAMPPバージョンをインストールすると、PHP
のバージョンが5.4になるので、今回はXAMPPのバー
ジョンは1.7.xをインストールします。

• Skypeをインストールされている場合、Portの80番
が競合するので、Skypeを終了するかPortを変更して
ください。

参考サイト:http://labs.uechoco.com/blog/
2007/12/xamppskypeapache.html
XAMPPをインストールしよう!
XAMPPのサイトにアクセスし、

ページ上部の「ダウンロード」をクリックします。

https://www.apachefriends.org/jp/index.html
XAMPPをインストールしよう!
どのOSでも構わないので「さらにダウンロード」を
クリックします。
XAMPPをインストールしよう!
使っているOSをクリックします。
XAMPPをインストールしよう!
1.7.xをクリックします。(最新で大丈夫です。)
XAMPPをインストールしよう!
Windowの場合はinstaller
Macの場合はdmg
をクリックするとダウンロードされます。
ダウンロードが開始されない場合は、

direct linkまたはmirrorのリンクをクリックしてください。
XAMPPをインストールしよう!
ダウンロードが完了したら、
Windowsの場合はそのままインストーラーを実行し
て、インストールしてください。

(ディレクトリはCドライブ直下で大丈夫です。)
XAMPPをインストールしよう!
ダウンロードが完了したら、
Windowsの場合はファイルを実行したら以下の画面
が表示されますので、Applicationsにドラッグすると
インストールされます。
XAMPPを起動しよう!
インストールしたXAMPPディレクトリの中にある

「XAMPP Control」をクリックします。
XAMPPを起動しよう!
Controlsが起動されますので(以下はMac用の画面)

Apacheの「Start」をクリックします。
XAMPPを起動しよう!
Controlsが起動されますので(以下はMac用の画面)

Apacheの「Start」をクリックします。
XAMPPを起動しよう!
Apacheの部分が青色に変わったら

http://localhost/xampp/

にアクセスして以下の画面がでたら完了です。
開発環境を整えよう
PHPはテキストエディタで

開発できます。
でもテキストエディタで

全てを開発するのは大変
そこで統合開発環境(IDE)
統合開発環境の特徴
• プロジェクト管理
• バージョン管理
• GUIの作成
• チーム開発
• 作成補助
• ビルド、デバッグ補助
http://ja.wikipedia.org/wiki/%E7%B5%B1%E5%90%88%E9%96%8B%E7%99%BA
%E7%92%B0%E5%A2%83
PHPの主な統合開発環境
• Eclipse(PDT)
• Net Beans
• PHP Editer
• VS.php
と色々ありますが、勉強会ではEclipseを使います。
Eclipseの特徴
• 完全無料
• Javaで動いているので、OSを選ばない
• 豊富なプラグイン
• 便利な入力補助機能
Eclipseをインストールしよう
Eclipseのサイトから、使用してるOSのリンクをクリッ
クします。

http://www.eclipse.org/downloads/
Eclipseをインストールしよう
ダウンロード元のリンクをクリックするとダウンロー
ドが開始されます。

(画像は山形大学のサーバ)
Eclipseをインストールしよう
ダウンロードしたファイルを任意のディレクトリに解
凍すればインストール完了です。
Eclipseをインストールしよう
Eclipseフォルダ内にある「Eclipse.app」をダブルク
リックするとEclipseが起動します。
もしPCにJavaがインストールされていない場合は、
Javaをインストールしますか?と聞かれるのでインス
トールしてください。
Eclipseをインストールしよう
Windowsを使用している場合は、既に日本語化されている
「All in One Eclipse」が利用できます。



http://mergedoc.sourceforge.jp/
Eclipseをインストールしよう
ダウンロード元のリンクをクリックするとダウンロー
ドが開始されます。

(画像は山形大学のサーバ)
Eclipseをインストールしよう
ダウンロードしたファイルを任意のディレクトリに解
凍すればインストール完了です。
Eclipseをインストールしよう
Eclipseフォルダ内にある「Eclipse.app」をダブルク
リックするとEclipseが起動します。
もしPCにJavaがインストールされていない場合は、
Javaをインストールしますか?と聞かれるのでインス
トールしてください。
Eclipseを日本語化しよう
Pleiadesのサイトから安定版をダウンロードします。

http://mergedoc.sourceforge.jp/index.html#pleiades.html
Eclipseを日本語化しよう
ダウンロードしたファイルを解凍して中の

「features」「plugins」を

先ほどインストールしたEclipseフォルダにある同じ
名前のフォルダにコピーします。
Eclipseを日本語化しよう
Windowsの場合はEclipseフォルダ内にある
eclipse.iniを

Macの場合はEclipse.app を右クリックして、「パッ
ケージの中身を表示」を選択して、中にある
eclipse.iniをテキストエディタで開きます。
Eclipseを日本語化しよう
eclipse.iniの最終行に

「-javaagent:../../../plugins/
jp.sourceforge.mergedoc.pleiades/pleiades.jar」

を追記して保存します。
Eclipseを日本語化しよう
Eclipseを再起動してメニューなどが日本語になって
いたら、日本語化は完了です。
もし何かエラーが出た場合は、「clean.cmd」を実行
してください。

参考サイトhttp://watawatablog.blogspot.jp/2010/04/
eclipseclean.html
Aptanaをインストールしよう
AptanaとはEclipseベースのWebオーサリングツー
ルです。
Aptanaをインストールしよう
Eclipseを起動します。

この時に「ワークスペースの選択」が出たら「OK」
をクリックします。
Aptanaをインストールしよう
メニューの「ヘルプ」から「新規ソフトウェアのイン
ストール」をクリックします。
Aptanaをインストールしよう
「追加」をクリックすると、リポジトリーの追加が出
てくるので、

「名前」に「PHP」

「ロケーション」に「http://
download.aptana.com/studio3/plugin/install」

を入れて「OK」をクリックします。
Aptanaをインストールしよう
Aptanaをインストールしよう
しばらくするとリストが表示されますので、

「Aptana Studio 3」

にチェックを入れて「次へ」をクリックします。
Aptanaをインストールしよう
その後も「次へ」クリックすると、最後に利用規約の
画面が出てくるので「同意する」にチェックを入れて
「完了」をクリックするとインストールが始まります
インストールが完了すると、「Eclipseを再起動しま
すか」と聞かれるので、「今すぐ再起動」をクリック
して再起動します。
プロジェクトを作ってみよう
右上の      をクリックすると
が表示されますので、

「Web」を選択して「OK」をクリックします。
プロジェクトを作ってみよう
「ファイル」から

「ワークスペースの切り替え」→「その他」を

選択します。
プロジェクトを作ってみよう
「ワークスペース」にインストールしたXAMPPの
htdocsフォルダまでのパスを選択して、「OK」をク
リックしてください。

この時にhtdocsに書き込み権限がないとエラーが出
てしまうので、権限を与えてください。
プロジェクトを作ってみよう
ワークスペースを選択しなおすと、Eclipseが再起動
されます。

選択したワークスペースは次回から引き継がれます。
プロジェクトを作ってみよう
「ファイル」から「新規」→「PHPプロジェクト」を
選択します。
プロジェクトを作ってみよう
「プロジェクト名」に「study」と入力して、

「完了」をクリックすると、プロジェクトが作られま
す。
Hello World !
「study」を選択した状態で右クリックをして、

「New From Template」から「PHP」→「PHP
Template」をクリックします。
Hello World !
ファイル名に「hello.php」と入力して完了をクリッ
クすると、PHPファイルが作られます。
Hello World !
作成したファイルに

<?php

echo Hello World ! ;

?>

と入力してみましょう。
Hello World !
http://localhost/study/hello.php
にアクセスすると「Hello World !」と表示されま
す。
文字列
リテラルとは
プログラム上で使用される、数値や文字列を直接記述
される定数のことです。
! $str = 文字列';

$int = 123;
文字列リテラル
文字列リテラル
PHPにおいて文字列とは複数の文字をつなげたもの
です。

例えば「こんにちは」や「Hello World!」などはそれ
ぞれ文字列です。
文字列リテラル
文字列をプログラムの中で記述する場合、どこからどこまでが
文字列としての値なのかを表すために文字の集合をシングルク
オーテーション( )又はダブルクオーテーション(")で囲います。
!
!
!
'文字列'

"文字列"
文字列の連結
文字列の連結
文字列と他の文字列を連結し、新しい文字列を作成す
る処理はよく行われます。PHPにて文字列を連結する
には「.」を使用します。





文字列を連結すると新しい文字列である「文字列1文
字列2」が作成されます。
'文字列1'.'文字列2'
文字列の連結
例えば2つの文字列を連結して出力するには次のよう
に記述します。
!
!
print 'こんにちは。'.'お元気ですか?';
文字列の連結
この例ですと最初から1つの文字列で記述すればいいよう
に思いますが、文字列の連結は変数に格納された値に対し
ても行うことができます。
!
!
!
$name = 佐藤';
print $name.'さん。こんにちは。';
文字列の連結
連結した文字列を変数に格納することも出来ます。
!


上記では変数「name」に「佐藤」と「さん」が連結され
た「佐藤さん」が格納されます。
!
$name = '佐藤'.'さん';
文字列の出力(echo, print)
文字列の出力(echo, print)
何らかの処理をした結果として文字列を出力すること
は頻繁に使用されます。

文字列を出力するには「echo」と「print」が用意さ
れています。
文字列の出力(echo, print)
echoの書式は次の通りです。
!
!
echo

void echo(string $arg1 [, string $... ])
文字列の出力(echo, print)
echoは引数に指定した文字列を出力します。複数の文字列
を続けて出力する場合にはカンマ(,)で区切って文字列を指
定します。
!
!
!
echo 'こんにちは';

echo '出身地:', '東京都';
文字列の出力(echo, print)
echoは関数ではなくPHPの言語構造の一つです。その為引数を
括弧で括る必要はありません。ただ関数のように括弧で括って記
述することも出来ます。
!
!
※ただし複数の文字列を引数に指定する場合は括弧で括らない
ほうがいいようです。
echo('こんにちは');
文字列の出力(echo, print)
続いてprintの書式は次の通りです。
!
!
print

int print(string $arg)
文字列の出力(echo, print)
printは引数に指定した文字列を出力します。echoとは異
なり複数の引数を指定できません。

また戻り値として常に1を返します。
!
!
!
print 'こんにちは';
文字列の出力(echo, print)
printもechoと同じく関数ではなくPHPの言語構造の一つです。その
為引数を括弧で括る必要はありません。ただ関数のように括弧で括っ
て記述することも出来ます。









単一の文字列を出力するのであればechoであってもprintであっても
基本的に違いはありません。どちらを使っても構わないと思います。



print('こんにちは');
エスケープシーケンス
エスケープシーケンス
文字列として入力を行えない特殊な文字があります。

簡単な例で言えば改行です。

Enterキーを押してもテキストが改行されるだけで改
行を表す文字としては入力ができません。
エスケープシーケンス
このような特殊な文字を入力するために「¥」記号+
1文字などを使い別の単語として記述することができ
ます。

このような特殊な記述の仕方を「エスケープシーケン
ス」と言います。
エスケープシーケンス
エスケープシーケンスとして用意されているものには次のよう
なものがあります。
!
!
!
!
¥n 改行

¥r キャリッジリターン

¥t タブ

¥¥ ¥文字

¥$ $文字

¥( 左括弧

¥) 右括弧

¥[ 左括弧

¥] 右括弧
エスケープシーケンス
エスケープシーケンスとして用意されているものには次のよう
なものがあります。
!
!
!
!
¥' シングルクオーテーション

¥" ダブルクオーテーション

¥nnn 8 進数表記

¥xnn 16 進数表記
エスケープシーケンス
エスケープシーケンスはダブルクオーテーションで囲まれ
た文字列の場合にだけ意味を持ちます。

例えば次のように使用します。
!
!
!
print "こんにちは¥n";

print "名前は¥"伊藤¥"です";
エスケープシーケンス
2番目の例ではダブルクオーテーションで囲まれた文字列の中で、
文字としての「"」を使用したい場合の例です。

エスケープシーケンスを使わずにそのまま記述すると次のように
なります。













print "名前は"伊藤"です";
エスケープシーケンス
このように記述してしまうとどこからどこまでが文字
列なのか識別できません。

その為、ダブルクオーテーションの中で囲まれた文字
列の中で「 」を記述する場合はエスケープシーケン
スを用いて「"」の代わりに「¥"」と記述します。
エスケープシーケンス
なおシングルクオーテーションで囲まれた文字列の中でも
次の2つだけはエスケープシーケンスとして扱われます。
!
!
!
¥' シングルクオーテーション

¥¥ ¥文字
エスケープシーケンス
シングルクオーテーションで囲まれた文字列の中で、
文字として「'」を記述したい場合はエスケープシーケ
ンスを用いて「'」の代わりに「¥'」と記述します。

そして1つだけですが「¥」記号はシングルクオーテー
ションの中でも特別な意味を持つため「¥」と言う文
字そのものを記述するには「¥¥」と記述します。
エスケープシーケンス
print '出身地は¥'大阪¥'です';
文字列の中の変数展開
文字列の中の変数展開
文字列をダブルクオーテーションで囲んで定義した場
合では、文字列の中に変数を記述すると変数に格納さ
れている値で文字列の中の変数を置き換えます。
文字列の中の変数展開
具体的な例で考えてみます。









$name = '高橋';

echo "こんにちは。$name さん";
文字列の中の変数展開
この例では文字列の中に変数「name」が記述されて
います。

変数「name」には「高橋」と言う文字列が格納され
ているため、この文字列を出力する時には「こんにち
は。高橋 さん」と変数が変数に格納されている値に
置き換わって出力されます。
このような処理を変数展開といいます。
文字列の中の変数展開
変数展開をする場合は単に文字列中に記述するだけでい
いのですが、変数が記述された位置の後ろにアルファベッ
トが続く場合などどこまでが変数名なのか区別できない
場合があります。











$colorname = 'red';

echo "frame is $colornamecolor";
文字列の中の変数展開
前記では変数「colornamecolor」を変数展開しようとしてしま
います。このように変数がどこまでなのか判別しにくい場合や、
配列変数などを使う場合には変数名の部分を{}で囲んで記述しま
す。
!
!
!
$colorname = 'red';

echo "frame is ${colorname}color";
文字列の中の変数展開
なおシングルクオーテーションで囲んだ文字列の中で
変数を記述しても変数展開は行われません。
練習問題1
自分の名前を出力してみましょう。

ただし、名字はダブルクオーテーションで囲んでくだ
さい。
数値と四則演算
数値リテラル
数値リテラル
数値であってもシングルクオーテーション( )やダブルクオーテーショ
ン(")で囲って記述すれば文字列となります。

例えば下記ではどちらも「250」と言う値ですが、単に「250」と
記述すれば数値ですし「"250"」と記述すれば文字列となります。
!
!
!
250

"250"
数値リテラル
それでは数値として記述が可能な形式についてもう少
し詳しくみておきます。
整数
整数
整数は10進数の他に8進数と16進数の形式で表記す
ることができます。







955

034

0x3A
整数
先頭が0以外の整数は10進数の整数です。

先頭が0から始まりその後に数値が続くものが8進数
となります。

先頭が0xから始める数値は16進数です。16進数のア
ルファベットは大文字でも小文字でも構いません。
整数
数値には「+」や「-」の符号を付けることが可能です。
省略された場合は「+」の正の数となります。







-82

-0xD2
整数
数値として使用可能な大きさは環境によって異なりま
すが32 ビット符号付(概ね-20億から20億までの数値)
となります。
浮動小数点数
浮動小数点数
浮動小数点数は小数点を含む数値です。

固定小数点形式を使った記述方法の他に指数表現も行
えます。











※1.42E-5とは1.42掛け10の-5乗です。
2.72

1.42E-5
浮動小数点数
浮動小数点数の場合にも「+」や「-」の符号を付ける
ことが可能です。







-0.72

-8E14
浮動小数点数
数値として使用可能な大きさは環境によって異なりま
すが10 進数で 14 桁の精度(概ね-1.7E-308から
1.7E308までの数値)となります。
四則演算
四則演算
数値や文字列などの値に対して計算を行ったり連結を
行ったりする演算子が用意されています。

例えば既に出てきました文字列と文字列を連結する
「.」も演算子の一つです。まあ変数に値を格納する
時に使われる「=」も演算子です。
四則演算
演算子は数多くのものが用意されていますが、ここで
は四則演算に関する演算子について確認します。

数値の値と値を加算したり乗算したりする場合に使用
します。
四則演算
四則演算に関する演算子は以下の通りです。
演算子 内容 例
* 乗算 5 * 3
/ 除算 8 / 2
+ 加算 3 + 6
- 減算 5 - 2
% 剰余 7 % 3
四則演算
ほとんどの演算子は二項演算子と呼ばれるもので2つ
の値を対象として処理を行います。

演算子の左側にある値と演算子の右側にある値に対し
て何らかの処理を行い結果として新しい値を返します。
四則演算で使われる演算子も、左辺と右辺に記述され
た数値を使って演算を行い結果を返します。
四則演算
ほとんどの演算子は二項演算子と呼ばれるもので2つ
の値を対象として処理を行います。

演算子の左側にある値と演算子の右側にある値に対し
て何らかの処理を行い結果として新しい値を返します。
四則演算で使われる演算子も、左辺と右辺に記述され
た数値を使って演算を行い結果を返します。
四則演算
実際の使用方法は次の通りです。
!
!
8 + 3 // 結果は11

6 - 2 // 結果は4

4 * 7 // 結果は28

12 / 4 // 結果は3

5 % 3 // 結果は2
演算子の優先順位
演算子の優先順位
四則演算で使用した演算子には優先順位が決まってい
ます。例えば次の例を見てください。









5 + 4 * 3
演算子の優先順位
「5 + 4」の結果に対して3を乗算すれば27ですが、
5に対して「4 * 3」の結果を加算すれば17となりど
の演算から行うのかで結果は異なります。

このように複数の演算子が使われている式ではどの演
算から行うのかが重要となります。
演算子の優先順位
四則演算に関する演算子の優先順位は以下のようになっ
ています。
!
!
(優先順位が高い)

* / %
+ -

(優先順位が低い)
演算子の優先順位
上の方が優先順位が高くなっています。そして同じ行
の位置にある演算子は優先順位は同じです。
先ほどの例で言えば、「+」よりも「*」の優先順位が
高いため先に「4 * 3」の演算が行われます。そして
その後に「5 + 12」と言う演算が行われます。
演算子の優先順位
なお同じ優先順位の演算子の場合には演算子毎に決まっ
ている結合順位に従います。

四則演算の演算子の結合順位は左から右のため、左に
記述されている演算子から行われます。
演算子の優先順位
!
!
上記の場合、「*」と「/」の優先順位は同じですので、
より左側にある「/」から先に演算が行われます。
4 / 2 * 2
括弧による優先順位の変更
演算子の優先順位とは異なる順序で演算を行いたい場
合には括弧()を使います。

演算子の優先順位に関わらず括弧で囲まれた演算は先
に演算が行われます。
括弧による優先順位の変更
!
!
上の例の場合、演算子だけを見ると「+」と「*」では
「*」の優先順位が高いですが、括弧で囲われた演算
が先に行われますのでまず「5 + 4」が演算され次に
「9 * 3」が演算されます。

よって全体の演算結果は「27」となります。
(5 + 4) * 3
括弧による優先順位の変更
括弧の中に複数の演算子が使われている場合は演算子
の優先順位によって演算が行われます。

また括弧が多重に使用されている場合は内側の括弧が
先に演算されます。
括弧による優先順位の変更
括弧の中に複数の演算子が使われている場合は演算子
の優先順位によって演算が行われます。

また括弧が多重に使用されている場合は内側の括弧が
先に演算されます。
! 2 * ((5 + 3) * 4 - (4 + 5) / 3)
括弧による優先順位の変更
先程の場合は次のように演算が行われます。
!
!
!
1)5 + 3 = 8 // 2 * (8 * 4 - (4 + 5) / 3)

2)4 + 5 = 9 // 2 * (8 * 4 - 9 / 3)

3)8 * 4 = 32 // 2 * (32 - 9 / 3)

4)9 / 3 = 3 // 2 * (32 - 3)

5)32 - 3 = 29 // 2 * 29

6)2 * 29 = 58
演算の際の型変換
演算の際の型変換
PHPでは値に対する型は存在しますが、必要に応じ
て自動的に変換が行われる場合があります。

例えば数値と文字列、また数値同士であっても整数と
浮動小数点数など異なっている型の値であってもPHP
が型を変換し演算を行います。
整数と浮動小数点数
次の例を見てください。








3 + 2.4

1.72 + 7
整数と浮動小数点数
このように「整数 + 浮動小数点数」や「浮動小数点
数 + 整数」のように整数と浮動小数点数の演算が行
われる場合には、まず整数が浮動小数点数に変換され
てから演算が行われます。

演算の結果も当然浮動小数点数となります。
数値と文字列
数値と文字列の値を加算したり減算したりした場合の
扱いについて確認します。

数値が記述されることを期待される演算子の値として
文字列が記述された場合、次のように変換されます。
数値と文字列
文字列の先頭に整数や浮動小数点数などがある場合は、
文字列は先頭からの数値の部分の数値として変換され
ます。




 '2008year' // 2008

'1.02パーセント' // 1.02
数値と文字列
先頭の文字が数値でない場合は0として扱われます。
!
!
'こんにちは' // 0

'year2008' // 0
数値と文字列
また整数と文字列の演算を行う場合に文字列が数値に
変換した結果が浮動小数点数であった場合には、次に
整数が浮動小数点数に変換され演算が行われます。
練習問題2
台形の面積「(上辺+下辺) 高さ 2」を計算する
プログラムを作ってみましょう。



上辺は5、下辺は7、高さは8とします。
変数
変数とは
変数とは
変数は文字列や数値の値を格納していくために使われ
ます。単に値を記憶するだけではなく、変数そのもの
に対して演算を行うことも可能です。
変数とは
簡単に言えば、値を入れておくための入れ物になりま
す。
変数の宣言と値の代入
変数の宣言
変数を利用するには、変数に対する名前と変数に格納
する値を使って次のように記述します。
$変数名 = 値;
変数の宣言
変数は事前に宣言は必要ありません。値を格納した時
点からその変数を利用することが出来るようになりま
す。

そして複数の変数をプログラムの中で使用することが
出来ます。

その為、それぞれの変数を区別するために変数には任
意の変数名を付けます。変数は「$」+変数名で表さ
れます。
変数の宣言
変数名として利用できる文字列は先頭がアンダーバー
かアルファベットで始まり、その後にアンダーバー、
数字、アルファベットが続くものです。




$name

$_pref_name

$year2008
変数の宣言
変数名では大文字と小文字は区別されます。数字やア
ンダーバー以外の記号で変数名を始めることは出来ま
せんので注意して下さい。
代入演算子
変数に値を格納するには代入演算子「=」を使います。
代入演算子は右辺の値を左辺に代入します。
代入演算子
!
!
上記の場合、「$old = 20」では数値の20を変数
「old」に格納しています。「$name = '加藤'」では
文字列の「加藤」を変数「name」に格納しています。
$old = 20;

$name = 加藤';
代入演算子
数値や文字列などの値が変数に格納されると、変数は
あたかもその値のように扱うことができます。

例えば変数をprintなどで出力することもできますし、
数値が格納された変数を他の数値と演算することもで
きます。

!
$name = '加藤';

print $name;
$num = 20;

print $num * 9;
代入演算子
また一度値を代入された変数に、別の値を代入するこ
ともできます。
!
!
$name = '加藤';

print $name;
$name = '遠藤';

print $name;
代入演算子
一度に複数の変数に値を代入することも出来ます。
$name1 = $name2 = $name3 = 佐藤 ;
変数の初期化とNULL
変数の初期化
変数は事前に宣言は不要で値を格納して初期化をした
時点から利用可能になると説明しましたが、実際には
値を一度も格納していない状態でも変数を使用するこ
とはできます。
変数の初期化
!
上記のように変数「name」に値を代入していない状
態で使用してもエラーとはなりません。(設定によっ
ては警告が出ます。)

このように一度も値が代入されておらず初期化されて
いない変数には「NULL」が格納されていると見なさ
れます。
print $name;
NULL型
NULLはデータ型の一つで値が何も無いことを表すの
に使います。

NULL型として利用できる値は定義済みの値「NULL」
だけです。大文字小文字は区別しないため「Null」や
「null」も使用できます。
NULL型
初期化されていない変数はNULLという値が格納され
ていると見なされます。これは明示的に次のように記
述した場合と同じです。
$name = NULL;
NULL型
変数にNULLを代入することによって変数には値が何
も格納されていない状態となります。
エラーではありませんが、変数に値を格納しない状態
はケアレスミスの元となりますので、変数は最初に使
う段階で初期値を代入するようにして下さい。
データ型
データ型とは
プログラムにおいて、変数に入れる数値や文字列など
のデータの型、または分類のことをデータ型といいま
す。
文字型や整数型、浮動小数型などがあります。
PHPで扱えるデータ型
PHPでは8種類のデータ型を扱えます。
• 論理値 (boolean)
• 整数 (integer)
• 浮動小数点数 (float, double)
• 文字列 (string)
• 配列 (array)
• オブジェクト (object)
• リソース (resource)
• ヌル (NULL)
論理型 (boolean)
論理型は、最も簡単な型です。boolean は、真偽の
値を表します。 この値は、TRUE または FALSE の
どちらかになります。
論理型 (boolean)
boolean リテラルを指定するには、定数 TRUE また
は FALSE を指定してください。 両方とも大文字小
文字に依存しません。
!
!
$foo = true;
変数の型
変数の型
数値や文字列などの値には型が存在しますが、PHP
の変数はどの型の値でも同じように格納することがで
きます。

その為、変数にどういった型の値が格納されるのか宣
言する必要はありません。




$name = 'Yamada';

$old = 24;
変数の型
またある値が格納された変数に対して別のデータ型の
値を再度格納することもできます。


$var = 'Yamada';

$var = 24;
変数の型
変数に型が存在しないわけではなく、格納された値の
型に自動的に変更されます。
型変換
型変換
あるデータ型を他のデータ型に変換することを型変換
(キャスト)といいます。
暗黙の型変換
演算の際の型変換でも触れましたが、プログラム実行
時に自動的に行われる型変換を暗黙の型変換といいま
す。

!




$num1 = 100 ;

$num2 = 100;
$sum = $num1 + $num2;



$str = $num1 . $num2;
論理型の暗黙の型変換
論理型へ暗黙の型変換が行われる時、次の値は
FALSE とみなされます。
!
!
boolean の FALSE

integer の 0 (ゼロ)

float の 0.0 (ゼロ)

空の文字列、 および文字列の "0"

要素の数がゼロである 配列

特別な値 NULL (値がセットされていない変数を含む)
明示的型変換
逆に、明示的に指定して行う型変換を明示的型変換と
いいます。

明示的型変換は変数の前に(型名)をつけると行えま
す。
!
$num1 = 100 ;

$num2 = 100;
$sum = (int)$num1 + $num2;
明示的型変換
使用可能な型変換は以下の通りです。

!
(int), (integer) - 整数へのキャスト

(bool), (boolean) - 論理値へのキャスト

(float), (double), (real) - float へのキャスト

(string) - 文字列へのキャスト

(array) - 配列へのキャスト

(object) - オブジェクトへのキャスト

(unset) - NULL へのキャスト (PHP 5)
PHPにおける型変換の注意点
PHPでは、他の言語に比べて暗黙の型変換を行う範
囲が広いです。

しかし、暗黙の型変換に頼りすぎると思いもよらない
動きやバグにつながります。

出来るだけ、明示的型変換を使うようにしましょう。
他の変数を代入
他の変数を代入
変数には数値や文字列などの値を格納することもできますが、
他の変数を格納することもできます。
!
!
この場合、変数「num1」に格納されていた値がコピーされ
て変数「num2」に格納されます。

よってどちらの変数にも「320」と言う数値が格納されてい
ます。
$num1 = 320;

$num2 = $num1;
他の変数を代入
プログラミング言語によっては変数はあくまで名札で
あり、別の保管されている値に対する名札としての役
割をする言語もあります。

ただPHPにおける変数は、変数1つ1つが値を保管す
る場所を持っています。ある変数を他の変数に代入し
た時、PHPでは元の変数が持っていた値を複製して、
格納先の変数に格納します。
他の変数を代入
$str = あいうえお ;
$str
01
02
03
04
05
06
07
08
メモリ上のアドレス
あいうえおアドレスの01が格納される
$str2 = $str;
$str2 アドレスの07が格納される
コピー
他の変数を代入
では変数「num1」に別の値を格納してみます。
!
$num1 = 320;

$num2 = $num1;
$num1 = 45;
他の変数を代入
変数「num1」と変数「num2」はそれぞれ別の値を
格納していましたので、変数「num1」の値をあとか
ら変更しても変数「num2」が格納している値には影
響しません。

よって変数「num1」には「45」が格納されていま
すが、変数「num2」には「320」が格納されたまま
です。
変数を参照
変数を参照
前のページで変数は変数毎に値を格納するための領域
を持つことを説明しました。
PHPではこのような変数の使い方の他に、他の変数
への参照を設定することも可能です。
変数を参照
他の変数への参照を設定するには次のように記述しま
す。
変数 =& 他の変数
変数を参照
「=」の代わりに「=&」を使うことで、右辺の変数
の値をコピーするのではなく、右辺の変数のエイリア
スとして左辺の変数を設定します。

この結果、右辺の変数が格納された値に左辺の変数名
でもアクセスできるようになります。
$str2 =& $str;
$str2 同じアドレスの01が格納される
他の変数を代入
$str = あいうえお ;
$str
01
02
03
04
05
06
07
08
メモリ上のアドレス
あいうえおアドレスの01が格納される
変数を参照
!
!
この場合、変数「num1」と変数「num2」の値はど
ちらも「320」となっています。
$num1 = 320;

$num2 =& $num1;
変数を参照
では変数「num1」に別の値を格納してみます。
!
$num1 = 320;

$num2 =& $num1;
$num1 = 45;
変数を参照
変数「num1」と変数「num2」は同じ値に対する別
名の関係のため、変数「num1」の値をあとから変更
した場合は変数「num2」が格納している値も同じよ
うに変更されます。

あくまで1つの格納領域に2つの変数名が付いている
だけのためです。
色々な代入演算子
色々な代入演算子
変数には単一の値を格納するだけではなく演算結果を格
納したり文字列と文字列の連結した結果を格納したりと
いった使い方がされます。例えば次のような使い方です。
!






$num = 80 * 15;
$pref = '愛知';

$address = $pref.'県';
色々な代入演算子
変数に演算結果などを格納しておくことで後で再度利
用することが出来ます。
また変数に格納されている値に対して何らかの演算を
行った上で、再度同じ変数に格納することもよく行わ
れる処理です。
色々な代入演算子
!


上記では変数「num」に10を格納した後で、変数
「num」の値に8を加算した結果を再度変数「num」
に格納しています。
$num = 10;

$num = $num + 8;
色々な代入演算子
このように演算した結果を再度同じ変数に格納する処
理はよく行われるため専用の演算子が用意されていま
す。
+=, -=, *=, /=, %=
色々な代入演算子
これらは数値オブジェクトで用意されている四則演算
用の演算子に「=」を付けたものです。次のように使
います。






変数 += 式

変数 -= 式

変数 *= 式

変数 /= 式

変数 %= 式
色々な代入演算子
これらはそれぞれ次のように記述した場合と同じで
す。






変数 = 変数 + 式

変数 = 変数 - 式

変数 = 変数 * 式

変数 = 変数 / 式

変数 = 変数 % 式
色々な代入演算子
「式」には数値や文字列などの値や他の演算式などを
記述します。

例えば変数「num」に格納されている数値を1だけ増
加させるには次のように記述できます。
$num += 1;
色々な代入演算子
また文字列の連結に関する演算子も用意されていま
す。
.=
色々な代入演算子
使い方は次の通りです。
!
$str = '山田';

$str .= 'さん';
色々な代入演算子
これは次のように記述した場合と同じです。




$str = '山田';

$str = $str.'さん';
練習問題3
主人公の変数を $hero と設定し、文字列として "ドラゴン" を代入し、主人公の
レベルを $level と設定し、数値の "0" を代入します。
以下の物語の変数が正しく表示できるように修正したページを作成してください。
!
!
!
!
とある人里離れた山奥にお さんと $hero が住んでいました。

この周辺にはまだ魔物の存在が確認されておらず、のどかに暮らしていました。

$hero は、山菜採りに向かう途中、草むらからスライムが突然現れ 驚き腰を抜か
しました。
偶然にも $hero の足元には棒切れが落ちており、それを拾いスライムを威嚇する
と、 スライムは逃げていきました。
はじめて魔物と出くわした $hero のレベルは、$level から1ポイント上がり、
レベル $level になりました。
練習問題4
リンゴ1個100円(税抜き)を3個、パイナップル(税抜き)
180円を6個を友達3人で共同で購入しました。
購入代金の合計と、一人当たり幾らの負担になるかをもとめ
なさい。
消費税は、8%として計算します。
定数
定数
定数とは数値や文字列などの値をプログラムの中でそ
のまま記述する変わりに、分かりやすい文字列を使っ
て値を定数として定義し、値を直接記述する代わりに
定数名を記述する場合に使用します。
定数
!
!
上記は商品単価に消費税を加えたものを計算していま
す。ここで消費税は8%として計算していますが、い
ずれ変更になるかもしれません。

このように数値を直接プログラムの中で記述している
と変更があった場合に全て修正が必要となります。
$price1 = 100 * (1 + 0.08);

$price2 = 84 * (1 + 0.08);

$price3 = 180 * (1 + 0.08);
定数
そこで0.08という数値の代わりにTAXという定数を
使って書き換えてみます。
!
!
define("TAX", 0.08);
$price1 = 100 * (1 + TAX);

$price2 = 84 * (1 + TAX);

$price3 = 180 * (1 + TAX);
定数
今度の場合、消費税率が変更になっても定数「TAX」
の定義箇所だけを変更するだけで済みます。

このように定数は一度定義すればプログラム内では変
更されないような値に対して識別子を割り当てるため
に使われます。
定数
定数の定義は次のように行います。
define(識別子, 値);
定数
識別子には文字列で定数の名前を指定します。

定数名として使用可能な文字列は変数と同じで先頭が
アンダーバーかアルファベットで始まり、その後にア
ンダーバー、数字、アルファベットが続くものです。

大文字と小文字は区別して扱われますが慣習的に定数
名は全て大文字を使います。変数名とは異なり先頭に
「$」は必要ありません。
定数
定数は一度定義するとプログラムの中で変更すること
は出来ません。

定義された定数は値の代わりとしてプログラムの中で
識別子を記述して使います。
!
define("PAI", 3.14159);

$menseki = PAI * $hankei * $hankei;
練習問題5
練習問題5の消費税を定数にして計算するように、プ
ログラムを修正してください。
今日のまとめ
PHP
• サーバサイドスクリプト
• Webサーバ上で実行する
• <?php∼?>で記述できる。
データベース
• データの集合体
• 様々なプログラムから読み書きができるもの
• 運用、管理のためのシステムやソフトウェアを
DBMS
• Webで一般的に使われているのがMySQL、
PostgreSQL
変数
• 値を入れておく入れ物
• 様々なデータ型がある
• 型を変更するのに型変換を使う

Más contenido relacionado

La actualidad más candente

あと一つプログラミング言語を
覚えたら死ぬ! 脳みそがパンクしそうな
あなたのための
nodeJSことはじめ
あと一つプログラミング言語を
覚えたら死ぬ! 脳みそがパンクしそうな
あなたのための
nodeJSことはじめあと一つプログラミング言語を
覚えたら死ぬ! 脳みそがパンクしそうな
あなたのための
nodeJSことはじめ
あと一つプログラミング言語を
覚えたら死ぬ! 脳みそがパンクしそうな
あなたのための
nodeJSことはじめ文樹 高橋
 
PHPerのための(不遇に負けない)Selenium入門 @ FuelPHP&CodeIgniter ユーザの集い #9
PHPerのための(不遇に負けない)Selenium入門 @ FuelPHP&CodeIgniter ユーザの集い #9PHPerのための(不遇に負けない)Selenium入門 @ FuelPHP&CodeIgniter ユーザの集い #9
PHPerのための(不遇に負けない)Selenium入門 @ FuelPHP&CodeIgniter ユーザの集い #9Hiroshi Toda
 
たのしい独自フレームワーク
たのしい独自フレームワークたのしい独自フレームワーク
たのしい独自フレームワークKenta USAMI
 
「自分でやる」という快感を追い続ける - あるプログラマーの成長戦略 -
「自分でやる」という快感を追い続ける - あるプログラマーの成長戦略 -「自分でやる」という快感を追い続ける - あるプログラマーの成長戦略 -
「自分でやる」という快感を追い続ける - あるプログラマーの成長戦略 -Isao Takahashi
 
業務アプリにおける VB との付き合い方
業務アプリにおける VB との付き合い方業務アプリにおける VB との付き合い方
業務アプリにおける VB との付き合い方s_earlgrey
 
「速」を落とさないコードレビュー
「速」を落とさないコードレビュー「速」を落とさないコードレビュー
「速」を落とさないコードレビューTakafumi ONAKA
 

La actualidad más candente (7)

あと一つプログラミング言語を
覚えたら死ぬ! 脳みそがパンクしそうな
あなたのための
nodeJSことはじめ
あと一つプログラミング言語を
覚えたら死ぬ! 脳みそがパンクしそうな
あなたのための
nodeJSことはじめあと一つプログラミング言語を
覚えたら死ぬ! 脳みそがパンクしそうな
あなたのための
nodeJSことはじめ
あと一つプログラミング言語を
覚えたら死ぬ! 脳みそがパンクしそうな
あなたのための
nodeJSことはじめ
 
PHP with Visual Studio
PHP with Visual StudioPHP with Visual Studio
PHP with Visual Studio
 
PHPerのための(不遇に負けない)Selenium入門 @ FuelPHP&CodeIgniter ユーザの集い #9
PHPerのための(不遇に負けない)Selenium入門 @ FuelPHP&CodeIgniter ユーザの集い #9PHPerのための(不遇に負けない)Selenium入門 @ FuelPHP&CodeIgniter ユーザの集い #9
PHPerのための(不遇に負けない)Selenium入門 @ FuelPHP&CodeIgniter ユーザの集い #9
 
たのしい独自フレームワーク
たのしい独自フレームワークたのしい独自フレームワーク
たのしい独自フレームワーク
 
「自分でやる」という快感を追い続ける - あるプログラマーの成長戦略 -
「自分でやる」という快感を追い続ける - あるプログラマーの成長戦略 -「自分でやる」という快感を追い続ける - あるプログラマーの成長戦略 -
「自分でやる」という快感を追い続ける - あるプログラマーの成長戦略 -
 
業務アプリにおける VB との付き合い方
業務アプリにおける VB との付き合い方業務アプリにおける VB との付き合い方
業務アプリにおける VB との付き合い方
 
「速」を落とさないコードレビュー
「速」を落とさないコードレビュー「速」を落とさないコードレビュー
「速」を落とさないコードレビュー
 

Similar a 第1回勉強会

PHPプログラミングのIPv6対応の実際
PHPプログラミングのIPv6対応の実際PHPプログラミングのIPv6対応の実際
PHPプログラミングのIPv6対応の実際Tetsuji Koyama
 
PHP conference kansai2018_ishihara
PHP conference kansai2018_ishiharaPHP conference kansai2018_ishihara
PHP conference kansai2018_ishiharaishihara_yuki
 
Phpでアプリケーションサーバー
PhpでアプリケーションサーバーPhpでアプリケーションサーバー
Phpでアプリケーションサーバーk-motoyan
 
PHPとフロントのイイ関係・動くスタイルガイドをつくろう
PHPとフロントのイイ関係・動くスタイルガイドをつくろうPHPとフロントのイイ関係・動くスタイルガイドをつくろう
PHPとフロントのイイ関係・動くスタイルガイドをつくろうYusuke Kawabata
 
【OSC2011広島】共有アプリで遊ぼう!(日本Red5ユーザー会)
【OSC2011広島】共有アプリで遊ぼう!(日本Red5ユーザー会)【OSC2011広島】共有アプリで遊ぼう!(日本Red5ユーザー会)
【OSC2011広島】共有アプリで遊ぼう!(日本Red5ユーザー会)Shinichiro Yoshida
 
ゼロからのプログラミングRails講座 Codeanywhere版
ゼロからのプログラミングRails講座 Codeanywhere版ゼロからのプログラミングRails講座 Codeanywhere版
ゼロからのプログラミングRails講座 Codeanywhere版DIVE INTO CODE Corp.
 
WebエンジニアがXR業界へ転職した話
WebエンジニアがXR業界へ転職した話WebエンジニアがXR業界へ転職した話
WebエンジニアがXR業界へ転職した話Hiroshi Masuda
 
プレゼンテーション 7 (4)
プレゼンテーション 7 (4)プレゼンテーション 7 (4)
プレゼンテーション 7 (4)Kato Tomo
 
プレゼンテーション 7
プレゼンテーション 7プレゼンテーション 7
プレゼンテーション 7Kato Tomo
 
CakePHP PHP Framework
CakePHP PHP FrameworkCakePHP PHP Framework
CakePHP PHP Frameworkryota ichie
 
バイラルメディアを作ったら3万いいね集まった!
バイラルメディアを作ったら3万いいね集まった!バイラルメディアを作ったら3万いいね集まった!
バイラルメディアを作ったら3万いいね集まった!Kato Tomo
 
バイラルメディアを作ったら3万いいね集まった!
バイラルメディアを作ったら3万いいね集まった!バイラルメディアを作ったら3万いいね集まった!
バイラルメディアを作ったら3万いいね集まった!Kato Tomo
 
20111029 rubyon php
20111029 rubyon php20111029 rubyon php
20111029 rubyon phpdo_aki
 
anybuild/Hosting casual #1
anybuild/Hosting casual #1anybuild/Hosting casual #1
anybuild/Hosting casual #1Ryo Kuroda
 
バイラルメディアを作ったら3万いいね集まった!
バイラルメディアを作ったら3万いいね集まった!バイラルメディアを作ったら3万いいね集まった!
バイラルメディアを作ったら3万いいね集まった!Kato Tomo
 
YAPC::Asia 2014 - 半端なPHPDisでPHPerに陰で笑われないためのPerl Monger向け最新PHP事情
YAPC::Asia 2014 - 半端なPHPDisでPHPerに陰で笑われないためのPerl Monger向け最新PHP事情YAPC::Asia 2014 - 半端なPHPDisでPHPerに陰で笑われないためのPerl Monger向け最新PHP事情
YAPC::Asia 2014 - 半端なPHPDisでPHPerに陰で笑われないためのPerl Monger向け最新PHP事情Junichi Ishida
 
PHPでAIプログラミングコンテスト準優勝するまでの軌跡
PHPでAIプログラミングコンテスト準優勝するまでの軌跡PHPでAIプログラミングコンテスト準優勝するまでの軌跡
PHPでAIプログラミングコンテスト準優勝するまでの軌跡Shintaro Kurachi
 
プログラミング同好会とすごい合同勉強会
プログラミング同好会とすごい合同勉強会プログラミング同好会とすごい合同勉強会
プログラミング同好会とすごい合同勉強会nemumu
 
PHP でも活用できる Makefile
PHP でも活用できる MakefilePHP でも活用できる Makefile
PHP でも活用できる MakefileShohei Okada
 

Similar a 第1回勉強会 (20)

Phpのはなし
PhpのはなしPhpのはなし
Phpのはなし
 
PHPプログラミングのIPv6対応の実際
PHPプログラミングのIPv6対応の実際PHPプログラミングのIPv6対応の実際
PHPプログラミングのIPv6対応の実際
 
PHP conference kansai2018_ishihara
PHP conference kansai2018_ishiharaPHP conference kansai2018_ishihara
PHP conference kansai2018_ishihara
 
Phpでアプリケーションサーバー
PhpでアプリケーションサーバーPhpでアプリケーションサーバー
Phpでアプリケーションサーバー
 
PHPとフロントのイイ関係・動くスタイルガイドをつくろう
PHPとフロントのイイ関係・動くスタイルガイドをつくろうPHPとフロントのイイ関係・動くスタイルガイドをつくろう
PHPとフロントのイイ関係・動くスタイルガイドをつくろう
 
【OSC2011広島】共有アプリで遊ぼう!(日本Red5ユーザー会)
【OSC2011広島】共有アプリで遊ぼう!(日本Red5ユーザー会)【OSC2011広島】共有アプリで遊ぼう!(日本Red5ユーザー会)
【OSC2011広島】共有アプリで遊ぼう!(日本Red5ユーザー会)
 
ゼロからのプログラミングRails講座 Codeanywhere版
ゼロからのプログラミングRails講座 Codeanywhere版ゼロからのプログラミングRails講座 Codeanywhere版
ゼロからのプログラミングRails講座 Codeanywhere版
 
WebエンジニアがXR業界へ転職した話
WebエンジニアがXR業界へ転職した話WebエンジニアがXR業界へ転職した話
WebエンジニアがXR業界へ転職した話
 
プレゼンテーション 7 (4)
プレゼンテーション 7 (4)プレゼンテーション 7 (4)
プレゼンテーション 7 (4)
 
プレゼンテーション 7
プレゼンテーション 7プレゼンテーション 7
プレゼンテーション 7
 
CakePHP PHP Framework
CakePHP PHP FrameworkCakePHP PHP Framework
CakePHP PHP Framework
 
バイラルメディアを作ったら3万いいね集まった!
バイラルメディアを作ったら3万いいね集まった!バイラルメディアを作ったら3万いいね集まった!
バイラルメディアを作ったら3万いいね集まった!
 
バイラルメディアを作ったら3万いいね集まった!
バイラルメディアを作ったら3万いいね集まった!バイラルメディアを作ったら3万いいね集まった!
バイラルメディアを作ったら3万いいね集まった!
 
20111029 rubyon php
20111029 rubyon php20111029 rubyon php
20111029 rubyon php
 
anybuild/Hosting casual #1
anybuild/Hosting casual #1anybuild/Hosting casual #1
anybuild/Hosting casual #1
 
バイラルメディアを作ったら3万いいね集まった!
バイラルメディアを作ったら3万いいね集まった!バイラルメディアを作ったら3万いいね集まった!
バイラルメディアを作ったら3万いいね集まった!
 
YAPC::Asia 2014 - 半端なPHPDisでPHPerに陰で笑われないためのPerl Monger向け最新PHP事情
YAPC::Asia 2014 - 半端なPHPDisでPHPerに陰で笑われないためのPerl Monger向け最新PHP事情YAPC::Asia 2014 - 半端なPHPDisでPHPerに陰で笑われないためのPerl Monger向け最新PHP事情
YAPC::Asia 2014 - 半端なPHPDisでPHPerに陰で笑われないためのPerl Monger向け最新PHP事情
 
PHPでAIプログラミングコンテスト準優勝するまでの軌跡
PHPでAIプログラミングコンテスト準優勝するまでの軌跡PHPでAIプログラミングコンテスト準優勝するまでの軌跡
PHPでAIプログラミングコンテスト準優勝するまでの軌跡
 
プログラミング同好会とすごい合同勉強会
プログラミング同好会とすごい合同勉強会プログラミング同好会とすごい合同勉強会
プログラミング同好会とすごい合同勉強会
 
PHP でも活用できる Makefile
PHP でも活用できる MakefilePHP でも活用できる Makefile
PHP でも活用できる Makefile
 

第1回勉強会