ホームページ >バックエンド開発 >PHPチュートリアル >PHPで見落とされやすい関数とクラスのまとめ

PHPで見落とされやすい関数とクラスのまとめ

伊谢尔伦
伊谢尔伦オリジナル
2017-06-27 13:46:03997ブラウズ

1. PHP関数関数が存在するかどうかを判断する

カスタム関数を作成し、変数関数の使い方を理解するとき、プログラムによって呼び出される関数が存在することを確認するために、最初にfunction_existsを使用することがよくあります。関数が存在するかどうかを確認してください。同じmethod_existsを使用して、クラスメソッドが存在するかどうかを検出できます。

function func() {
}
if (function_exists('func')){
 echo 'exists';
}

クラスが定義されているかどうかはclass_existsを使用できます

class MyClass{
}
// 使用前检查类是否存在
if (class_exists('MyClass')) {
 $myclass = new MyClass();
}

ファイルが存在するかどうかfile_existsなど、PHPにはそのようなチェックメソッドがたくさんあります

$filename = 'test.txt';
if (!file_exists($filename)) {
 echo $filename . ' not exists.';
}

2.PHP関数の変数関数

いわゆる変数関数は変数を使用します 関数を呼び出すには、変数の値が変数であるため、変数の値を変更することで別の関数を呼び出すことができます。これは、コールバック関数、関数リストで、または動的パラメーターに基づいてさまざまな関数を呼び出すためによく使用されます。変数関数を呼び出す方法は、変数名に括弧を追加することです。

function name() {
 echo 'jobs';
}
$func = 'name';
$func(); //调用可变函数

変数関数を使用してオブジェクトのメソッドを呼び出すこともできます

class book {
 function getName() {
  return 'bookname';
 }
}
$func = 'getName';
$book = new book();
$book->$func();

静的メソッドは変数を介して動的に呼び出すこともできます

$func = 'getSpeed';
$className = 'Car';
echo $className::$func(); //动态调用静态方法

静的メソッドでは、$this 疑似変数は使用できません。 self、parent、static を使用して、静的メソッドとプロパティを内部的に呼び出すことができます。

class Car {
 private static $speed = 10;
 
 public static function getSpeed() {
  return self::$speed;
 }
 
 public static function speedUp() {
  return self::$speed+=10;
 }
}
class BigCar extends Car {
 public static function start() {
  parent::speedUp();
 }
}
BigCar::start();
echo BigCar::getSpeed();

3. PHP クラスとオブジェクトの高度な機能

同じクラスの 2 つのインスタンスのすべての属性が等しい場合、判断する必要がある場合に 比較演算子== を使用できます。 two 2 つの変数が同じオブジェクトへの参照である場合、等価演算子 === を使用して判断できます。

class Car {
}
$a = new Car();
$b = new Car();
if ($a == $b) echo '=='; //true
if ($a === $b) echo '==='; //false

オブジェクトのコピー。一部の特殊なケースでは、キーワード clone を使用してオブジェクトをコピーできます。このとき、clone メソッドが呼び出され、この マジック メソッド を使用して属性の値を設定できます。

class Car {
 public $name = 'car';
 
 public function clone() {
  $obj = new Car();
  $obj->name = $this->name;
 }
}
$a = new Car();
$a->name = 'new car';
$b = clone $a;
var_dump($b);

オブジェクトのシリアル化では、データの保存または転送に使用される Serialize メソッドを使用してオブジェクトを文字列にシリアル化し、必要に応じてその文字列をシリアル化解除して使用できるオブジェクトに逆シリアル化することができます。

りー

以上がPHPで見落とされやすい関数とクラスのまとめの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。