>  기사  >  백엔드 개발  >  실용적이지만 쉽게 간과되는 PHP 지식을 요약합니다(권장).

실용적이지만 쉽게 간과되는 PHP 지식을 요약합니다(권장).

怪我咯
怪我咯원래의
2017-06-16 11:04:051622검색

이 글은 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.&#39;<br>&#39;;
$b = unserialize($str); //反序列化为对象
var_dump($b);

4. PHP 문자열에서 문자열 길이 가져오기

PHP에는 문자열 길이를 직접 가져올 수 있는 마법의 함수가 있습니다. 이 함수는 strlen()입니다.

$str = &#39;hello&#39;;
$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 = &#39;99.9&#39;;
$result = sprintf(&#39;%01.2f&#39;, $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&#39;s your name?";
echo addslashes($str);//输出:what\&#39;s your name?

위 내용은 실용적이지만 쉽게 간과되는 PHP 지식을 요약합니다(권장).의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.