検索
ホームページphp教程php手册PHP5 権威プログラミング読書学習ノート 電子書籍付き download_php 基礎

PHP 5 Power Programming PDF ダウンロード アドレス /books/28207.html

PHP4 では使用されません __construct() の名前としてコンストラクターでは、C の場合と同様に、クラスの名前を使用してメソッドを定義する必要があります。
PHP5 では、新しい統一コンストラクター命名メソッド __construct() が使用されています。もちろん、クラス名を使用することも可能です。
ただし、両方を同時に使用すると、システムはデフォルトで __construct() を使用します。

コードをコピー コードは次のとおりです。

class Person {
//PHP4 のメソッド
public function Person(){
echo "PHP4 のメソッド";
}
//PHP5 で推奨されるメソッド
public function __construct(){
echo "PHP5 の推奨メソッド";
}
public functionsay(){
}
}
$p1=new Person();
?>

コンストラクター内で値を返すことはできないため、コンストラクター内からエラーを生成する最も一般的な方法は、例外をスローすることです。
コードは次のとおりです。
コードをコピー コードは次のとおりです。

class Person{
private $_age;
public function __construct($age){
try {
if ($age$this- >_age=$age;
}else {
throw new Exception("入力した年齢が古すぎます");
}
}catch (Exception $e){
echo $ e->getMessage();
}
}
}
$p1=new Person(121);
?>

アクセス制御
オブジェクト属性のアクセス保護は、OOP の重要なパラダイムです
パブリック: どこからでもアクセス可能
保護: クラス メンバーは、オブジェクトのサブクラスおよび親クラスによってオブジェクト内のメソッドからアクセスできます。それらが配置されているクラス
プライベート: クラス メンバーには、それが配置されているクラスのオブジェクト内のメソッドによってのみアクセスできますが、継承されたクラスのメンバーからはアクセスできません。プライベート メンバーは継承されないため、関連する 2 つのクラスが同じ名前のプライベート変数を宣言できます。
つまり、どちらのクラスも自身のプライベート プロパティのみを参照でき、プライベート メンバー間には関係がありません。
例:
コードをコピー コードは次のとおりです:

/**
* MyClass の定義
*/
class MyClass
{
public $ public = 'Public';
protected $protected = 'Protected';
private $private = 'Private';
function printHello()
{
echo $this->public; echo $this->protected;
echo $this->private;
}
}
$obj = new MyClass();
echo $obj->public; //この行は正常に実行できます
echo $obj->protected; // この行は致命的なエラーを生成します
echo $obj->private; // この行も致命的なエラーを生成します
$obj ->printHello(); // 出力 Public、Protected、Private
/**
* Define MyClass2
*/
class MyClass2 extends MyClass
{
// 使用可能public の場合 protected で再定義しますが、
protected ではなく private にします $protected = 'Protected2';
function printHello()
{
echo $this->public;
echo $this-> protected;
echo $this->private;
}
}
$obj2 = new MyClass2();
echo $obj->public; // この行は通常通り実行できますecho $obj2->private; // private は定義されていません
echo $obj2->protected; // この行は致命的なエラーを生成します
$obj2->printHello(); // 出力 Public, Protected2 、ただし Private

注: クラス内のすべてのメソッドは、キーワード public、protected、または private を使用して定義する必要があります。これらのキーワードが設定されていない場合、メソッドはデフォルトの public に設定されます。
静的メソッド
静的メソッドは、オブジェクト インスタンスを作成せずに class name::static メソッドを通じて呼び出すことも、$this->static メソッドを通じてオブジェクト インスタンス内で呼び出すこともできます。または self: :呼び出す静的メソッド。
コードをコピー コードは次のとおりです。

class Foo
{
public static $my_static = 'foo';
public static function staticValue() {
return self::$my_static;//クラス内の静的メンバーにアクセスするには self キーワードを使用します} }
$obj=new Foo();
echo $obj->staticValue();//メソッド 1
echo Foo::staticValue();//メソッド 2?>

オブジェクトのクローン
PHP4 では、新しいオブジェクトが返されると、「オブジェクト自体」が返されます。
PHP5 では、新しいオブジェクトが時間の場合、返されるのは「オブジェクトを指すハンドル」です。
これは、PHP5 では、オブジェクト インスタンス ($obj1) を別の変数 ($obj2) に割り当てるときに、両方のオブジェクトがその変数を指すことを意味します。同じメモリ領域です。
例:
コードをコピー コードは次のとおりです。

php
クラス test{
public $str;
}
$obj1=new test();
$obj1->str="obj1";
$obj2= $obj1 ;
$obj2->str="obj2";
echo $obj1->str;//「obj1」が出力されます
?>

$obj1 と $obj2 は同じメモリ領域を指しているため、いずれかのオブジェクトを使用してメンバー変数の値を変更すると、他のオブジェクトに影響を与えます。
しかし、オブジェクトのコピー (2 つの独立したメモリ領域) を作成する必要がある場合があります。このとき、言語コマンド clone を使用できます。
以下の例を参照してください。
コードをコピー コードは次のとおりです。

class test{
public $str ;
}
$obj1=new test();
$obj1->str="obj1";
$obj2= クローン $obj1;
$obj2->str="obj2 ";
echo $obj1->str;//"obj2" が出力されます
?>

parent:: および self:: self:: 現在のクラスを指し、通常は静的メンバー、メソッド、定数にアクセスするために使用されます。
parent:: 親クラスを指し、多くの場合、親クラスのコンストラクターとメソッドを呼び出すために使用されます。 、親クラスのメンバーと定数にアクセスするためにも使用できます。
注: クラスの階層を簡単に変更できるため、親クラスの特定の名前の代わりにparent::を使用する必要があります。 。
例:
コードをコピー コードは次のとおりです。

class Father{
public function __construct(){
echo "親クラスのコンストラクターを呼び出す
";
}
}
class Son extends Father {
>public function __construct (){
parent::__construct();//メソッド 1
// Father::__construct();//メソッド 2
echo "サブクラスのコンストラクターを呼び出す";
}
}
$son=new Son();
?>

結果:
親クラスのコンストラクターを呼び出します
呼び出しサブクラスのコンストラクター
上記の理由により、方法 1 を使用することをお勧めします。
インスタンスのインスタンス
コードをコピー コードは次のとおりです:

class Rectangle {
public $name=__CLASS__;
}
class Square extends Rectangle {
public $name=__CLASS__;
}
class Circle{
public $name=__CLASS__;
}
function checkIfRectangle($shape){
if ($shape instanceof Rectangle ){
echo $shape->name;
}else {
echo "このオブジェクトは Rectangle クラスのインスタンスではありません";
}
}
checkIfRectangle(new Square());//出力: Square
checkIfRectangle(new Circle());/ /出力: オブジェクトは Rectangle クラスのインスタンスではありません
?>

注: __CLASS__ は現在のクラスの名前を格納するために使用される特別な定数です
声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
php5和php8有什么区别php5和php8有什么区别Sep 25, 2023 pm 01:34 PM

php5和php8的区别在性能、语言结构、类型系统、错误处理、异步编程、标准库函数和安全性等方面。详细介绍:1、性能提升,PHP8相对于PHP5来说在性能方面有了巨大的提升,PHP8引入了JIT编译器,可以对一些高频执行的代码进行编译和优化,从而提高运行速度;2、语言结构改进,PHP8引入了一些新的语言结构和功能,PHP8支持命名参数,允许开发者通过参数名而不是参数顺序等等。

php5如何改80端口php5如何改80端口Jul 24, 2023 pm 04:57 PM

php5改80端口的方法:1、编辑Apache服务器的配置文件中的端口号;2、辑PHP的配置文件以确保PHP在新端口上工作;3、重启Apache服务器,PHP应用程序将开始在新的端口上运行。

php5没有监听9000端口如何解决php5没有监听9000端口如何解决Jul 10, 2023 pm 04:01 PM

php5没有监听9000端口解决方法步骤:1、检查PHP-FPM配置文件;2、重启PHP-FPM服务;3、关闭防火墙或配置端口转发;4、检查其他进程是否占用9000端口。

php7和php5语法有什么区别php7和php5语法有什么区别Jul 10, 2023 pm 03:25 PM

php7和php5语法区别有:1、PHP7引入了严格的类型声明,而PHP5变量的类型是隐式的;2、PHP7引入了对标量类型声明的支持,而PHP5并没有;3、PHP7引入了NULL合并运算符,而PHP5检查一个变量是否存在并且不为null,需要使用条件语句;4、PHP7添加了新的比较运算符“<=>”,而PHP5并没有;5、PHP7引入新特性匿名类,而PHP5并没有。

php7的版本和5有哪些不同php7的版本和5有哪些不同Sep 15, 2023 pm 04:11 PM

php7的版本和5的不同有性能提升、标量类型声明、返回值类型声明、异常处理改进、匿名类、语法改进、新的运算符、增强的错误处理和移除了一些旧特性等。详细介绍:1、性能提升,PHP7引入了全新的Zend引擎,名为Zend Engine 3.0,带来了显著的性能提升,PHP7的性能比PHP5提高了大约两倍,这主要是通过改进了内存管理、优化了函数调用和异常处理、增强了垃圾回收等等。

php5没有监听9000端口怎么解决php5没有监听9000端口怎么解决Mar 21, 2023 pm 04:32 PM

在使用PHP5时,有些用户可能会遇到无法监听端口9000的情况。这时,我们需要进行一些配置和排查工作来解决这一问题。

php5怎么改80端口php5怎么改80端口Mar 21, 2023 pm 04:32 PM

​如果你是一名网站管理员,你可能会碰到需要将 PHP5 的端口从默认的 80 端口进行修改的情况。这个过程可能会稍有进急,但是只要跟着以下步骤操作,一定会很容易地完成。

探讨PHP7和PHP5在语法上的不同之处探讨PHP7和PHP5在语法上的不同之处Mar 21, 2023 pm 07:10 PM

PHP是一种广泛使用的服务器端编程语言,被用于开发动态网站和应用程序。近些年,PHP7的发布引起了一些关注。PHP7比之前的版本(如PHP5)有很多改进和优化。在本文中,我们将探讨PHP7和PHP5在语法上的不同之处。

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

mPDF

mPDF

mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。

SublimeText3 英語版

SublimeText3 英語版

推奨: Win バージョン、コードプロンプトをサポート!

Dreamweaver Mac版

Dreamweaver Mac版

ビジュアル Web 開発ツール

AtomエディタMac版ダウンロード

AtomエディタMac版ダウンロード

最も人気のあるオープンソースエディター

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境