> 백엔드 개발 > PHP 튜토리얼 > PHP에서 간과하기 쉬운 함수와 클래스 요약

PHP에서 간과하기 쉬운 함수와 클래스 요약

伊谢尔伦
풀어 주다: 2023-03-11 16:16:01
원래의
981명이 탐색했습니다.

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();
}
로그인 후 복사

PHP에는 파일이 존재하는지 여부 등을 확인하는 방법이 많이 있습니다. file_exists 등

$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 클래스와 객체 간의 고급 기능

객체 비교. 동일한 클래스의 두 인스턴스의 모든 속성이 동일한 경우 필요한 경우 비교 연산자==를 사용할 수 있습니다. 두 인스턴스를 판단하려면 두 변수가 동일한 객체를 참조하는 경우 동등 연산자 ===를 사용하여 판단할 수 있습니다.

class Car {
}
$a = new Car();
$b = new Car();
if ($a == $b) echo '=='; //true
if ($a === $b) echo '==='; //false
로그인 후 복사

객체 복사. 이때 clone 메소드를 통해 객체를 복사할 수 있으며, 이 magic 메소드를 통해 속성 값을 설정할 수 있습니다.

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);
로그인 후 복사

객체 직렬화, 데이터를 저장하거나 전송하는 데 사용되는 직렬화 메서드를 통해 객체를 문자열로 직렬화한 다음, 필요할 때 역직렬화를 통해 사용할 수 있도록 문자열을 객체로 역직렬화할 수 있습니다.

아아아아

위 내용은 PHP에서 간과하기 쉬운 함수와 클래스 요약의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿