【PHP】PHP基础总结②
类和对象
用课堂作为样本
<?php
// 自動車クラス
class Car {
// スピードのプロパティ
public $speed;
// ナンバーのプロパティ
public $number;
// コンストラクタ
function __construct() {
echo "インスタンスの生成<br>";
}
// 走行メソッド
function drive() {
echo "「{$this->number}」が{$this->speed}km/hで走行<br>";
}
// 停車メソッド
function stop() {
echo "「{$this->number}」が停車<br>";
$this->speed = 0;
}
}
?>
<?php
// 自動車クラスの読み出し
require_once("car.php");
// インスタンスの生成
$car = new Car();
// ナンバー、スピードの設定
$car->number = "あ12-34";
$car->speed = 50;
// 自動車の走行と停車
$car->drive();
$car->stop();
?>
多个实例
<?php
// 自動車クラスの読み出し
require_once("car.php");
// インスタンスの生成
$car1 = new car();
$car2 = new car();
// ナンバー、スピードの設定($car1)
$car1->number = "あ12-34";
$car1->speed = 50;
// 自動車の走行と停車($car1)
$car1->drive();
$car1->stop();
// ナンバー、スピードの設定($car2)
$car2->number = "い56-78";
$car->speed = 40;
// 自動車の走行と停車($car2)
$car2->drive();
$car2->stop();
?>
参数和属性 shù hé
<?php
// 自動車クラス
class Car {
// スピードのプロパティ
private $speed;
// ナンバーのプロパティ
private $number;
// コンストラクタ
function __construct($number) {
$this->number = $number;
echo 「"{$this->number}」 のインスタンス生成<br>";
}
// 走行メソッド
function drive($speed) {
$this->speed = $speed;
echo "「{$this->number}」 が{$this->speed}km/hで走行<br>";
}
// 停車メソッド
function stop() {
echo "「{$this->number}」 が停車<br>";
$this->speed = 0;
}
}
// インスタンスの生成
$car1 = new Car("あ12-34");
$car2 = new Car("い56-78");
// 自動車の走行と停車
$car1->drive(50);
$car1->stop();
$car2->drive(40);
$car2->stop();
?>
封装・静态成员
封装
<?php
class Person {
// 名前
private $name;
// $nameのセッター
function setName($name) {
$this->name = $name;
}
// $nameのゲッター
function getName() {
return $this->name;
}
}
// インスタンスの生成
$p = new Person();
$p->setName("山田太郎");
echo "名前:{$p->getName()}";
?>
静态成员
<?php
class Car {
private $serial = 0; // 製造番号(インスタンスプロパティ)
private static $carNumber = 0; // 生産台数(静的プロパティ)
// コンストラクタ
function __construct() {
self::$carNumber++; // 静的メンバの値をインクリメント
$this->serial = self::$carNumber; // idを決める
}
// 自動車の製造番号を表示(インスタンスメソッド)
function showSerial() {
echo " 製造番号:{$this->serial}<br>";
}
// 自動車の生産台数を求める(静的メソッド)
static function showCarNumber() {
$number = self::$carNumber;
echo "生産台数:{$number}<br>";
}
}
// 自動車の生産台数の表示
Car::showCarNumber();
// 1台目の自動車の生成
$car1 = new Car();
$car1->showSerial();
// 自動車の生産台数の表示
Car::showCarNumber();
// 3台目までの自動車の生成
$car2 = new Car();
$car2->showSerial();
$car3 = new Car();
$car3->showSerial();
// 自動車の生産台数の表示
Car::showCarNumber();
?>
传承
继承的实现
<?php
// 計算クラス(足し算・引き算しかできない)
class Calc {
// 数値1
protected $num1;
// 数値2
protected $num2;
// 値の設定
function setNumbers($num1, $num2) {
$this->num1 = $num1;
$this->num2 = $num2;
}
// 足し算の結果表示
function add() {
$ans = $this->num1 + $this->num2;
echo "{$this->num1} + {$this->num2} = {$ans}<br>";
}
// 引き算の結果取得
function sub() {
$ans = $this->num1 - $this->num2;
echo "{$this->num1} - {$this->num2} = {$ans}<br>";
}
}
// 拡張計算クラス(掛け算・割り算もできる)
class CalcEx extends Calc {
// 掛け算の結果表示
function mul() {
$ans = $this->num1 * $this->num2;
echo "{$this->num1} × {$this->num2} = {$ans}<br>";
}
// 割り算の結果表示
function div() {
$ans = $this->num1 / $this->num2;
echo "{$this->num1} ÷ {$this->num2} = {$ans}<br>";
}
}
// インスタンスの生成
$calc = newCalcEx(); // CalcExクラスのインタンス生成
// 値の設定
$carc->setNumbers(12, 3);
// 加減乗除の計算の実行
$calc->add(); // 加算(Calcクラスのメソッド)
$calc->sub(); // 減算(Calcクラスのメソッド)
$calc->mul(); // 乗算(CalcExクラスのメソッド)
$calc->div(); // 除算(CalcExクラスのメソッド)
?>
应用继承
抽象类和重写
<?php
// リスト生成クラス
abstract class Abslist {
// リストの開始(抽象メソッド)
abstract function startList();
// リストの終了(抽象メソッド)
abstract function endList();
// リスト生成メソッド
function show($array) {
$this->startList();
foreach ($array as &$value) {
echo "<li>" . $value . "</li>\n";
}
$this->endList();
}
}
?>
<?php
// 親クラスの読み出し
require_once("abslist.php");
// リストクラス(ulによるリスト)
class UlList extends AbsList {
// リストの開始(実装)
function startList() {
echo "<ul>\n";
}
// リストの終了(実装)
function endlist() {
echo "</ul>\n;
}
}
?>
<!DOCTYPE html>
<html>
<head>
<title>リストの生成</title>
<meta chaset="UTF-8">
</head>
<body>
<h1></h1>
<?php
require_once("ullist.php");
// UlList
$ls = new UlList();
//$ls = new AbsList();
$data = ["", "", ""];
$ls->show($data);
?>
</body>
</html>
饼干和会话
使用PHP处理会话
<!DOCTYPE html>
<html>
<head>
<title>セッションの活用</title>
<meta chaset="UTF-8">
</head>
<body>
<h1>セッション値の生成</h1>
<?php
session_start(); // セッションスタート
$_SESSION["data"] = "PHP";
echo "<p>セッションID:" . session_id() . "</p>";
echo "<p>設定した値:{$_SESSION["data"]}</p>";
?>
<a href="sample6-8_2.php>次へ</a>
</body>
</html>
<!DOCTYPE html>
<html>
<head>
<title>セッションの活用2</title>
<meta chaset="UTF-8">
</head>
<body>
<h1>セッション値の確認</h1>
<?php
session_start(); //
echo "<p>セッションID:" . session_id() . "</p>";
echo "<p>設定した値:{$_SESSION["data"]}</p>";
?>
<a href="sample6-8_1.php>トップへ</a>
</body>
</html>
使用PHP操作数据库。
使用PHP操作数据库
<?php
try {
// (1) 接続
$db = new PDO('mysql:host=localhost;dbname=school', 'root', 'root');
// (2) SQLクエリ作成
$stmt = $db->prepare("SELECT * FROM student;");
// (3) SQLクエリ実行
$res = $stmt->execute();
if ($res) {
// (4) 該当するデータを取得
$all = $stmt->fetchALL();
foreach($all as $loop) {
// (5) 結果を表示
echo "id = " . $loop["id"];
echo " name = " . $loop["name"];
echo " grade = " . $loop["grade"] . "<br>";
}
}
// 切断
$db = null;
} catch(PDOException $e) {
echo "データベース接続失敗<br>";
echo $e->getMessage();
}
?>
– 异常处理的编写
try {
例外が発生しそうな処理
} catch(例外クラス 変数名) {
例外処理
}
插入数据
<?php
try {
// (1) 接続
$db = new PDO('mysql:host=localhost;dbname=school', 'root', 'root');
// (2) 挿入するデータの作成
$id = 3003;
$name = "";
$grade = 3;
// (3) SQLクエリ作成
$stmt = $db->prepare("INSERT INTO student VALUES(?, ?, ?);");
$stmt->bindParam(1, $id, PDO::PARAM_INT);
$stmt->bindParam(2, $name, PDO::PARAM_STR);
$stmt->bindParam(1, $grade, PDO::PARAM_INT);
// (4) SQL
$res = $stmt->execute();
// (5)
$db = null;
} catch(PDOException $e) {
echo "データベース接続失敗<br>";
echo $e->getMessage();
}
?>
请以中文为母语的人将下面的句子进行释义:
参考