이 글은 PHP 함수가 함수의 존재 여부를 판단하는지, PHP 함수의 변수 함수 등 필요한 PHP 함수의 가변 함수 등 일상 업무에서 발견하지만 사람들이 쉽게 무시하기 쉬운 PHP에 관한 몇 가지 유용한 지식을 주로 요약합니다. 친구 여러분, 편집자를 따라 자세한 소개를 살펴 보겠습니다.
이 글은 주로 PHP에 관한 몇 가지 유용한 지식을 요약하고 참고 및 학습을 위해 공유합니다. 자세한 소개를 살펴보겠습니다.
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 키워드를 통해 객체를 복사할 수 있습니다. 이때 __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);
객체 직렬화, 객체는 직렬화 메서드를 통해 문자열로 직렬화될 수 있고, 데이터를 저장하거나 전송하는 데 사용되며, 필요할 때 역직렬화를 통해 사용할 객체로 역직렬화될 수 있습니다.
class Car { public $name = 'car'; } $a = new Car(); $str = serialize($a); //对象序列化成字符串 echo $str.'<br>'; $b = unserialize($str); //反序列化为对象 var_dump($b);
4. PHP 문자열에서 문자열 길이 가져오기
PHP에는 문자열 길이를 직접 가져올 수 있는 마법의 함수가 있습니다. 이 함수는 strlen()입니다.
$str = 'hello'; $len = strlen($str); echo $len;//输出结果是5
strlen 함수는 영어 문자 계산에 아주 좋은데, 한자가 있는 경우 길이를 계산하고 싶으면 어떻게 해야 하나요?
mb_strlen() 함수를 사용하여 문자열의 중국어 길이를 가져올 수 있습니다.
$str = "我爱你"; echo mb_strlen($str,"UTF8");//结果:3,此处的UTF8表示中文编码是UTF8格式,中文一般采用UTF8编码
5. PHP 문자열 형식화 문자열
$str = '99.9'; 문자열이 있는 경우 이 문자열을 99.90으로 만드는 방법은 무엇입니까?
PHP의 형식화된 문자열 함수 sprintf()를 사용해야 합니다.
함수 설명: sprintf(형식, 변환할 문자열)
Return: 형식화된 문자열
$str = '99.9'; $result = sprintf('%01.2f', $str); echo $result;//结果显示99.90
위 예의 형식을 설명해주세요
%01.2f는 무슨 뜻인가요?
1. 이 % 기호는 시작을 의미합니다. 앞에 쓰면 지정된 형식이 시작되었음을 의미합니다. 즉, "시작 문자"가 "변환 문자"가 나타날 때까지 형식이 종료됩니다.
2. % 기호 뒤에 오는 것은 0인데, 이는 "빈칸 채우기 문자"로, 해당 위치가 비어 있으면 0으로 채워진다는 의미입니다.
3. 0 뒤에 오는 것은 1입니다. 이 1은 모든 문자열 자리 표시자가 1자리 이상이어야 함을 규정합니다(소수점도 자리 표시자임).
1을 6으로 바꾸면 $result의 값은 099.90
소수점 이하 두 자리가 있어야 하므로 99.90은 총 5개의 자리 표시자가 있으니 이제 6개의 자리 표시자가 필요하므로 채워 넣으세요. 0 전체.
4. %01 뒤의 .2(포인트 2)는 이해하기 쉽습니다. 소수점 이하의 숫자는 2자리를 차지해야 한다는 의미입니다. 이때 $str의 값이 9.234라면 $result의 값은 9.23이 됩니다.
왜 4가 빠졌나요? 왜냐하면 위의 규정에 따라 소수점 이하 자리는 반드시 2자리만 차지할 수 있기 때문입니다. 그러나 $str의 값은 소수점 이하 3자리를 차지하므로 가수 4가 제거되고 23만 남습니다.
5. 마지막으로 f "변환 문자"로 끝납니다.
6. 문자열의 PHP 문자열 이스케이프
php 문자열 이스케이프 함수addslashes()
함수 설명: 특수 문자에 이스케이프 문자를 추가하고 문자열을 반환하는 데 사용됩니다
返回值:一个经过转义后的字符串
$str = "what's your name?"; echo addslashes($str);//输出:what\'s your name?
위 내용은 실용적이지만 쉽게 간과되는 PHP 지식을 요약합니다(권장).의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!