学ばなければならないPHP 7
43898 ワード
PHPベースノートを整理し、PHP 7を強固にすることを学び、従来の応用は主にPHP 5バージョンに基づいており、以降の市場も徐々に成熟したPHP 7に偏っているため、PHP 7の応用を学ぶ必要がある、Hello PHP 7!
0 x 01 PHP概要
変数の4つの役割ドメイン: local:ローカル変数 global:関数内部の変数宣言はグローバル変数を参照し、同時にグローバル変数は である. static:ローカル変数は を削除しません parameter:パラメータ役割ドメイン、関数パラメータリストに宣言された変数 0x02 PHP EOF
PHP EOFは、コマンドライン
出力の実行:
0 x 03変数
変数には、データ、文字列、クラス、配列タイプがあります.
3.1定数の定義:
3.2配列:
3.3配列ソート:
いくつかの配列の組み込み関数アクション:https://www.runoob.com/php/php-ref-array.html
3.4 $_SERVER:
0 x 04マジック定数
使い心地の良い定数は、これらの変数の大文字と小文字が敏感ではなく、同じ効果です.
変数#ヘンスウ#
説明
現在のコード行番号を返します
現在のファイルの完全なパス+ファイル名.含まれているファイルで使用すると、含まれているファイル名が返されます.
現在のファイルのパス
関数の内部に使用して、現在の関数名を出力し、関数名の大文字と小文字を区別します.
クラスで使用して、現在のクラス名を返し、クラス名の大文字と小文字を区別します.
クラスのメソッド名
ネーミングスペース
0 x 05クラス
オブジェクト(OOP)に向けて,オブジェクトは情報と情報を処理する記述からなる全体であり,現実世界に対する抽象である.
クラスの継承、親と子、子は親を継承し、親を拡張することができます.PHPはマルチ継承をサポートしていません.
アクセス制御
public(パブリック):パブリッククラスメンバーは、どこでもアクセスできます.
protected(保護):保護されたクラスメンバーは、その子クラスおよび親クラスにアクセスできます.
private(プライベート):プライベートクラスメンバーは、定義されたクラスにのみアクセスできます.
staticキーワード
クラスのプロパティまたはメソッドがstatic(静的)であることを宣言すると、クラスをインスタンス化せずに直接アクセスできます.
静的プロパティは、クラスがインスタンス化されたオブジェクトからアクセスできません(静的メソッドは可能です).
静的メソッドはオブジェクトを介して呼び出す必要がないため、擬似変数$thisは静的メソッドでは使用できません.
静的プロパティは、->オペレータを使用してオブジェクトにアクセスできません.
0 x 06ファイルは含む
PHPには
0 x 07ファイル
ファイルには読み取りファイル、書き込みファイルが含まれ、PHPではformフォームに渡されたファイルが処理されます.
0 x 08異常処理
未知のエラーが発生する可能性がある場合は、異常を投げ出し、対応する操作を実行し、後続の作業が順調に処理されることを保証する必要があります.
0 x 09フィルタ
フィルタは実際には内蔵されたパラメータ検証関数と見なすことができ,自分で実現することもできる. を指定されたフィルタによってフィルタリングする. を同じまたは異なるフィルタによってフィルタリングする. をフィルタリングする. する.
フィルタ:https://www.runoob.com/php/php-ref-filter.html
0x0A JSON
php処理jsonデータには
0 x 0 Bネーミングスペース
ネーミングスペースは、異なるファイルで可能な関数、変数、クラス名の名前の重複による競合を解決し、別名を取得します.
≪サブネーミングスペース|Subname Space|oem_src≫:≪階層定義|Hierarchy Definition|oem_src≫
ネーミングスペースの使用:限定、非限定、完全限定の3つの方法で、ネーミングスペースをインポートするには
More:https://www.runoob.com/php/php-namespace.html
0 x 0 C接続データベース
データベースは情報とデータを格納する重要なソフトウェアとして、php接続データベースは主にmysqliとPDOの2つの方式があり、mysqliはmysqlデータベースにしか接続できない.pdoは12種類のデータベース操作をサポートし、phpの拡張に属し、デフォルトでmysqliがインストールされている.
0 x 02 Dその他
Date、正規表現、FTP、HTTP、XMLなどの操作もたくさんありますが、これらの内容は基本的にマニュアルを見ればいいので、国内の比較的速いサイトをお勧めします.https://www.php.net
オフラインマニュアルダウンロード:『PHP 7中国語マニュアル2018版』
0 x SE共通関数
一般的な関数、文字列の一部を整理する操作
関数#カンスウ#
説明
文字列の長さを返します
文字列の最初の文字に一致する位置を返しました.
文字列に定義済み文字がある前に
文字列を
1次元配列を
文字列の両端のスペースを削除
計算文字列のMD 5ハッシュ
対応するパスファイルのMD 5ハッシュの計算
文字に対応する
出力のフォーマット
定義済みエンティティを文字に変換
文字列の定義済み文字をHTMLエンティティに変換
アルファベット文字列ROT 13を符号化、オフセット13、符号化復号関数を同一にする
2つの文字列を比較し、0を返します.
文字列内の単語数の計算
文字列のHTML、XML、PHPのラベルを剥がす
文字列の反転
文字列アルファベット小文字
文字列を大文字に変換
文字列切り取り、符号化の問題は
文字列内の特定の文字を変換します.配列はkey=keyword、val=置換文字
デバッグ出力の詳細
配列反転
配列内の重複値の除去
配列に対応する値が存在するかどうかは、
ファイルの内容をテキスト文字列で読み込む
ファイルに内容を書き込む
ファイルが存在するかどうかは、
0 x 0 Fまとめ
PHP 7はすでに市场に発表されて何年も経っているので、PHP 7の応用はまだ非常に成熟しています.最近、PHPに基づく多くのプロジェクトの大部分がPHP 7バージョンを使っているのを见て、大きなトレンドが来て、时代の歩みに追いつきました.皆さんと东さんの交流を歓迎します.
私の個人ブログに注目してください.原文の住所でもあります.https://blog.dyboy.cn/program/124.html
0 x 01 PHP概要
PHP
(Hypertext Preprocessor
)、ハイパーテキストプリプロセッシング言語は、Python
と同様に、弱いタイプのスクリプト言語、解釈言語であり、PHP
はHTML
ドキュメントと混在することができる.変数の4つの役割ドメイン:
$GLOBALS
配列変数のPHP EOFは、コマンドライン
shell
とプログラム言語で文字列を定義する方法であり、そのパッケージの内容は変数を解析することができる.
$a = 'DYBOY';
echo <<<EOF
hello $a
EOF;
?>
出力の実行:
hello DYBOY
0 x 03変数
変数には、データ、文字列、クラス、配列タイプがあります.
3.1定数の定義:
// URL , ,
define('BASE_URL', 'https://blog.dyboy.cn/');
?>
3.2配列:
count($arr)
を使用して配列の長さを取得し、PHPには関連配列、キー値ペアの形式が存在する.
//
$arr = ['status' => 1, 'data' => 'OK'];
foreach($arr as $key => $val){
echo " :".$key.' :'.$val;
}
?>
3.3配列ソート:
sort()
-配列を昇順に並べ替えるrsort()
-配列を降順に配列asort()
-関連配列の値に基づいて配列を昇順に並べ替えるksort()
-関連配列のキーに従って配列を昇順に並べ替えるarsort()
-関連配列の値に基づいて配列を降順に並べ替えます.krsort()
-関連配列のキーに従って配列を降順に並べ替えるいくつかの配列の組み込み関数アクション:https://www.runoob.com/php/php-ref-array.html
3.4 $_SERVER:
echo $_SERVER['PHP_SELF'];
echo $_SERVER['SERVER_NAME'];
echo $_SERVER['HTTP_HOST'];
echo $_SERVER['HTTP_REFERER'];
echo $_SERVER['HTTP_USER_AGENT'];
echo $_SERVER['SCRIPT_NAME'];
?>
0 x 04マジック定数
使い心地の良い定数は、これらの変数の大文字と小文字が敏感ではなく、同じ効果です.
変数#ヘンスウ#
説明
__LINE__
現在のコード行番号を返します
__FILE__
現在のファイルの完全なパス+ファイル名.含まれているファイルで使用すると、含まれているファイル名が返されます.
__DIR__
現在のファイルのパス
__FUNCTION__
関数の内部に使用して、現在の関数名を出力し、関数名の大文字と小文字を区別します.
__CLASS__
クラスで使用して、現在のクラス名を返し、クラス名の大文字と小文字を区別します.
__METHOD__
クラスのメソッド名
__NAMESPACE__
ネーミングスペース
0 x 05クラス
オブジェクト(OOP)に向けて,オブジェクトは情報と情報を処理する記述からなる全体であり,現実世界に対する抽象である.
//
class People{
// var
var name;
var age;
var sex;
// ,
function __construct( $name, $age, $sex ) {
$this->name = $name;
$this->age = $age;
$this->sex = $sex;
}
// function ,
function run($long){
echo $this->name." can run ".$long." Meters";
}
//
function __destruct() {
echo " ";
}
}
$newObj = new People('DYBOY', '20', 'boy'); //
?>
クラスの継承、親と子、子は親を継承し、親を拡張することができます.PHPはマルチ継承をサポートしていません.
//
class Chinese extends People {
// coding...
var position; //
// ,
function run(){
echo " 6666, 6666666 KM";
}
}
?>
アクセス制御
public(パブリック):パブリッククラスメンバーは、どこでもアクセスできます.
protected(保護):保護されたクラスメンバーは、その子クラスおよび親クラスにアクセスできます.
private(プライベート):プライベートクラスメンバーは、定義されたクラスにのみアクセスできます.
staticキーワード
クラスのプロパティまたはメソッドがstatic(静的)であることを宣言すると、クラスをインスタンス化せずに直接アクセスできます.
静的プロパティは、クラスがインスタンス化されたオブジェクトからアクセスできません(静的メソッドは可能です).
静的メソッドはオブジェクトを介して呼び出す必要がないため、擬似変数$thisは静的メソッドでは使用できません.
静的プロパティは、->オペレータを使用してオブジェクトにアクセスできません.
0 x 06ファイルは含む
PHPには
require
とinclude
の2種類がありますが、違いはinclude
でエラーが発生した後も実行を続け、require
で停止し、require
を使用することをお勧めします.0 x 07ファイル
ファイルには読み取りファイル、書き込みファイルが含まれ、PHPではformフォームに渡されたファイルが処理されます.
if ($_FILES["file"]["error"] > 0)
{
echo " :" . $_FILES["file"]["error"] . "
";
}
else
{
echo " : " . $_FILES["file"]["name"] . "
";
echo " : " . $_FILES["file"]["type"] . "
";
echo " : " . ($_FILES["file"]["size"] / 1024) . " kB
";
echo " : " . $_FILES["file"]["tmp_name"];
}
?>
0 x 08異常処理
未知のエラーが発生する可能性がある場合は、異常を投げ出し、対応する操作を実行し、後続の作業が順調に処理されることを保証する必要があります.
//
function checkNum($number) {
if($number>1)
{
throw new Exception(" 1");
}
return true;
}
// try
try {
checkNum(2);
// ,
echo ' , $number ';
}
//
catch(Exception $e) {
echo 'Message: ' .$e->getMessage();
}
?>
0 x 09フィルタ
フィルタは実際には内蔵されたパラメータ検証関数と見なすことができ,自分で実現することもできる.
filter_var()
-単一の変数filter_var_array()
-複数の変数filter_input()
-入力変数を取得し、filter_input_array()
-複数の入力変数を取得し、同じまたは異なるフィルタによってそれらをフィルタフィルタ:https://www.runoob.com/php/php-ref-filter.html
0x0A JSON
php処理jsonデータには
string json_encode ( $value [, $options = 0 ] )
とmixed json_decode ($json_string [,$assoc = false [, $depth = 512 [, $options = 0 ]]])
の2つの関数がある0 x 0 Bネーミングスペース
ネーミングスペースは、異なるファイルで可能な関数、変数、クラス名の名前の重複による競合を解決し、別名を取得します.
namesapce mySpace;
// coding...
?>
≪サブネーミングスペース|Subname Space|oem_src≫:≪階層定義|Hierarchy Definition|oem_src≫
namespace MyProject\Sub\Level; //
const CONNECT_OK = 1;
class Connection { /* ... */ }
function Connect() { /* ... */ }
/*
:
MyProject\Sub\Level\CONNECT_OK
MyProject\Sub\Level\Connection
MyProject\Sub\Level\Connect
*/
?>
ネーミングスペースの使用:限定、非限定、完全限定の3つの方法で、ネーミングスペースをインポートするには
use
文を使用します.また、別名as
を指定できます.たとえば、use app\index\model\User as UserModel;
// file1.php
namespace Foo\Bar\subnamespace;
const FOO = 1; //
function foo() { //
//coding...
echo __NAMESPACE__;
}
class foo { //
static function staticmethod() {}
}
?>
//file2.php
namespace Foo\Bar;
include 'file1.php';
const FOO = 2;
function foo() {
//coding...
echo __NAMESPACE__;
}
class foo {
static function staticmethod() {}
}
/* 1. */
foo(); // Foo\Bar\foo, :Foo\Bar
foo::staticmethod(); // Foo\Bar\foo , staticmethod
echo FOO; // Foo\Bar\FOO, 2
/* 2. */
subnamespace\foo(); // Foo\Bar\subnamespace\foo, Foo\Bar\subnamespace
subnamespace\foo::staticmethod(); // Foo\Bar\subnamespace\foo,
// staticmethod
echo subnamespace\FOO; // Foo\Bar\subnamespace\FOO
/* 3. */
\Foo\Bar\foo(); // Foo\Bar\foo
\Foo\Bar\foo::staticmethod(); // Foo\Bar\foo, staticmethod
echo \Foo\Bar\FOO; // Foo\Bar\FOO
// 、 , , \strlen() \Exception \INI_ALL。
?>
More:https://www.runoob.com/php/php-namespace.html
0 x 0 C接続データベース
データベースは情報とデータを格納する重要なソフトウェアとして、php接続データベースは主にmysqliとPDOの2つの方式があり、mysqliはmysqlデータベースにしか接続できない.pdoは12種類のデータベース操作をサポートし、phpの拡張に属し、デフォルトでmysqliがインストールされている.
// mysqli
// mysqli_connect(host,username,password,dbname,port,socket);
//
$conn = new mysqli('127.0.0.1', 'username', 'passwd', 'dbname');
//
if($conn->connect_error){
die(' :'.$conn->connect_error);
}
//...
// sql
$result = $conn->query("SELECT * FROM users");
if($result->num_rows > 0){
while($row = $result->fetch_assoc()){
echo $row['uid'].$row['username'];
}
}
else{
echo 'Nothing...';
}
//
$sql = "INSERT INTO MyGuests (firstname, lastname, email)
VALUES ('John', 'Doe', '[email protected]');";
$sql .= "INSERT INTO MyGuests (firstname, lastname, email)
VALUES ('Mary', 'Moe', '[email protected]');";
$sql .= "INSERT INTO MyGuests (firstname, lastname, email)
VALUES ('Julie', 'Dooley', '[email protected]')";
$conn->multi_query($sql)
//
$conn->close();
?>
//PDO
try {
$conn = new PDO("mysql:host='127.0.0.1';", 'username', 'passwd');
echo " ";
}
catch(PDOException $e) {
echo $e->getMessage();
}
?>
/*mysqli */
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDB";
//
$conn = mysqli_connect($servername, $username, $password, $dbname);
// Check connection
if (!$conn) {
die(" : " . mysqli_connect_error());
}
$sql = "SELECT id, firstname, lastname FROM MyGuests";
$result = mysqli_query($conn, $sql);
if (mysqli_num_rows($result) > 0) {
//
while($row = mysqli_fetch_assoc($result)) {
echo "id: " . $row["id"]. " - Name: " . $row["firstname"]. " " . $row["lastname"]. "
";
}
} else {
echo "0 ";
}
mysqli_close($conn);
?>
0 x 02 Dその他
Date、正規表現、FTP、HTTP、XMLなどの操作もたくさんありますが、これらの内容は基本的にマニュアルを見ればいいので、国内の比較的速いサイトをお勧めします.https://www.php.net
オフラインマニュアルダウンロード:『PHP 7中国語マニュアル2018版』
0 x SE共通関数
一般的な関数、文字列の一部を整理する操作
関数#カンスウ#
説明
strlen($str)
文字列の長さを返します
strpos($str, $parm)
文字列の最初の文字に一致する位置を返しました.
addslashes($str)
文字列に定義済み文字がある前に
\
を付けるexplode(',', $str)
文字列を
,
で区切り、配列に分割するimplode(',', $arr)
1次元配列を
,
で区切られた文字列に組み合わせるtrim($str)
文字列の両端のスペースを削除
md5($str)
計算文字列のMD 5ハッシュ
md5_file($file_path)
対応するパスファイルのMD 5ハッシュの計算
sha1()
, sha1_file()
md5()
と同様ord($char)
文字に対応する
ASCII
のコード値を返します.chr($num)
ASCII
コードの数値に対応する文字を返します.printf($str, $param1, $param2)
出力のフォーマット
sprintf()
printf()
と同様に、戻り値は変数付与可能な値を格納するhtmlspecialchars($str)
定義済みエンティティを文字に変換
htmlspecialchars_decode($str)
文字列の定義済み文字をHTMLエンティティに変換
str_rot13($str)
アルファベット文字列ROT 13を符号化、オフセット13、符号化復号関数を同一にする
strstr()
strcmp($str1, $str2)
2つの文字列を比較し、0を返します.
str_word_count(string,return,char)
文字列内の単語数の計算
strip_tags(string,allow)
文字列のHTML、XML、PHPのラベルを剥がす
strrev($str)
文字列の反転
strtolower($str)
文字列アルファベット小文字
strtoupper($str)
文字列を大文字に変換
substr(string,start,length)
文字列切り取り、符号化の問題は
mb_substr()
を使用できます.strtr(string,from,to)
, strtr(string,array)
文字列内の特定の文字を変換します.配列はkey=keyword、val=置換文字
var_dump($param)
デバッグ出力の詳細
array_reverse($arr)
配列反転
array_unique($arr)
配列内の重複値の除去
in_array ( $param, $arr[, TRUE ] )
配列に対応する値が存在するかどうかは、
TRUE
を返します.file_get_cotents($url)
ファイルの内容をテキスト文字列で読み込む
file_put_contents($filepath)
ファイルに内容を書き込む
file_exists($filepath)
ファイルが存在するかどうかは、
bool
に戻ります.0 x 0 Fまとめ
PHP 7はすでに市场に発表されて何年も経っているので、PHP 7の応用はまだ非常に成熟しています.最近、PHPに基づく多くのプロジェクトの大部分がPHP 7バージョンを使っているのを见て、大きなトレンドが来て、时代の歩みに追いつきました.皆さんと东さんの交流を歓迎します.
私の個人ブログに注目してください.原文の住所でもあります.https://blog.dyboy.cn/program/124.html