PHP入門 クラス、継承 短時間でこれだけ学習、IF文、Switch文、参照渡し

PHP入門

PHP入門(1)IF文、Switch文 

PHP 入門(1)、IF文

プログラム
PHPとは、動的なウェブページを作成することを主な目的としたプログラミング言語
C言語やJava言語に似た文法であり、PHPは平易な文法で学びやすい

・IF
if else elseif(else if、elseとifの間にスペースも使用可能であるがelseifが良い)

<?php
	//pythonと違ってセミコロン;が必要
	//書式はある程度自由
	//pythonのelifは elseif or else if
	//http://www.php-labo.net/tutorial/php/if.html
//< 左アングルブラケット
//> 右アングルブラケット

/*
(1)testは5よりも大きい
(2)testは5よりも大きい

(3)testは5よりも大きい
*/

	$test = 10;

	//通常IF文
	if($test > 5){
		echo "(1)testは5よりも大きい\n";
	} elseif ($test <= 3){//else ifでも同じ。ただし、ちょっと処理が遅いそうです。
		//elseif はelse ifでもOK
		echo "(1-2)testは5以下です。";
	}else{
		echo "その他"	
	}

	//endifバージョン コロンが必要で{}が不要
	if($test > 5):
		echo "(2)testは5よりも大きい\n";
	elseif($test <= 5):
		echo "(2-2)testは5以下です。";
	endif;//セミコロン
?>
<?php if($test > 5):echoが不要 つまり範囲外だから ?>
(3)testは5よりも大きい
endif版はhtmlタグ等を記入するときに便利
<?php elseif($test <= 5): ?>
(3-2)testは5よりも大きい
<?php endif; ?>


Switch文

<?php
//switch セミコロンを忘れない

$hoge = "apple";
switch($hoge){
	case "apple":
		echo "apple is red\n";
		break;
	case "banana":
		echo "banana is yellow\n";
		break;
	default:
		echo "other";
		break;	
}

?>
<?php
//switch
$hoge = 12;
switch($hoge){
	case 0:
		echo "0点\n";
		break;
	case 12:
		echo "12点\n";
		break;
	default:
		echo "other";
		break;	
}

?>

PHP入門(2)関数 function() 参照渡し 

PHP 入門(2.1) 関数 function() 参照渡しを学習します。


function 関数名(引数1,引数2,,,)

コードをまとめて見やすくする
同じ処理内容をまとめて再利用
引数を与えることで用途が広がる

関数名は、「関数名として有効な形式は、まず文字かアンダースコアで始まり、その後に任意の数の文字・ 数字・あるいはアンダースコアが続くものです。」

<?php
//関数、参照渡し

function test(){
	print "関数\n";
	$hoge= 99;
	return $hoge;
}
function Hikisu($cInt){
	print "(1)\n";
	print "値渡しの場合、変数は変わらない\n";
	print "加算前=".$cInt."\n";
	$cInt +=10;
	//print "\n";
}

function Sansyo(&$cInt){
	print "(2)\n";
	print "参照渡しの場合、変数は変わる\n";
	print "加算前=".$cInt."\n";
	$cInt +=10;
	//print "\n";
}
?>

<?php
	
	$tensu=10;
	//test();
	print test()."\n";
	
	Hikisu($tensu);//加算をしても変わらない
	//値渡しの場合、変数は変わらない
	print $tensu; //10
	print "\n";
	
	Sansyo($tensu);
	print $tensu;//20
	print "\n";
	
	$a=10;
	$b=$a;
	print "a=".$a."\n";
	print "a=b"."\n";
	print "b=".$b."\n";
	$b+=20;
	print "b+=20"."\n";
	print "b=".$b."\n";
	print "a=".$a."\n";
?>

PHP入門(3) クラス、継承 短時間でこれだけ学習

PHP5

クラスポイント

1.メンバ変数 public(どこからでも),private(自身のクラスのみ)、protected(継承クラスでも)、PHP4ではvar
2.PHP4 関数名をクラス名にするとコンストラクタ(インスタンス化に実行される)、PHP5function __construct()とする。 __destruct()もある。
3.staticと宣言すると、インスタンス化しなくてもHoge::$liとして利用可能で変更もできる
4.constと宣言すると、インスタンス化しなくてもHoge::dame($がいらない)として利用可能だが変更不可
5.static functionスタティックメソッドは、インスタンス化しなくてもHoge::cssTag()として利用可能(インスタンス化しなくてよい)
6.継承はextends

参考サイト

PHP入門 – クラス
ほでなすHP PHP

コード

<?php
/*
・クラスのポイント
メンバ変数 public(どこからでも),private(自身のクラスのみ)、protected(継承クラスでも)、PHP4ではvar
関数名をクラス名にするとコンストラクタ(インスタンス化に実行される、PHP4)、またはPHP5ではfunction __construct()とする
staticと宣言すると、インスタンス化しなくてもHoge::$liとして利用可能で変更もできる
constと宣言すると、インスタンス化しなくてもHoge::dame($がいらない)として利用可能だが変更不可
static functionスタティックメソッドは、インスタンス化しなくてもHoge::cssTag()として利用可能(インスタンス化しなくてよい)
継承はextends
*/

class Hoge{
	public $kazu=3;				//メンバ変数
	public static $li="teisu";	//変更OK Hoge::$li(インスタンス化しなくてよい)
	const dame=4;		//変更不可 Hoge::dame($がいらない)
	function __construct(){	//コンストラクタ  
		echo "コンストラクタhoge\n";	//\nは改行
	}
	function htmlTag(){
		echo "class Hoge htmlTag() tag\n";
	}
	public static function cssTag(){
		//Hoge::cssTag()として利用可能(インスタンス化しなくてよい)
		echo "tag\n";
	}
}

//継承
class Koko extends Hoge{
	//ここでfunction __construct()とするとオーバーライドになり、親のコンストラクタは呼ばれない
	//コンストラクタを記述しないと親のコンストラクタが実行時に呼ばれる
	function outPut(){
		echo "class Koko\n";
		echo $this->kazu+3;//親クラスのメンバ変数
		echo "\n";
	}
}


?>

<?php
//出力コード
print "Hoge::\$li=".Hoge::$li."\n";//static、インスタンス化していなけど使える

$a = new Hoge();//コンストラクタが呼ばれる//インスタンス化
$a->htmlTag();
//-> (アロー演算子)

$b = new Koko();//子クラス、親のコンストラクタも呼ばれる
$b->outPut();


?>

実行後のターミナルの出力結果(一部)

Hoge::$i=teisu
コンストラクタhoge
class Hoge htmlTag() tag
コンストラクタhoge
class Koko
6

こちらの記事もどうぞ