PHP에 흩어져 있는 지식 포인트를 요약합니다.

巴扎黑
풀어 주다: 2023-03-15 06:52:01
원래의
1384명이 탐색했습니다.

오늘 편집자는 PHP에 대한 몇 가지 소소한 지식을 공유할 것입니다. 매우 훌륭하고 참고할 만한 가치가 있습니다. 필요한 친구가 참고할 수 있습니다.

PHP는 작은따옴표', 변수 보간 또는 (거의) 확인하지 않습니다. 문자열의 모든 변환. 정의 시퀀스이므로 작은따옴표를 사용하여 문자열을 정의하는 것이 매우 간단하고 빠릅니다. 그러나 큰따옴표 ""는 그렇지 않습니다. PHP는 문자열의 변수 또는 이스케이프 시퀀스를 확인하고 변수 및 이스케이프 시퀀스의 값을 출력합니다.


$a = "123";
print '$a\t';
print '$a';
로그인 후 복사

출력:


$a\t$a
로그인 후 복사

큰따옴표인 경우 "":


$a = "123";
print "$a\t";
print "$a";
로그인 후 복사

출력:

참고:

작은따옴표 ''로 설명 가능 ' 및 \ 이 두 개의 이스케이프 문자가 전부입니다!

작은따옴표 문자는 가능한 한 작은따옴표를 사용하도록 할 수 있습니다. 작은따옴표는 큰따옴표보다 더 효율적입니다(큰따옴표는 연산하기 전에 먼저 변수가 있는지 확인해야 하지만 작은따옴표는 그럴 필요가 없기 때문입니다) 심판받다).

작은따옴표 '' 및 큰따옴표 ""를 사용할 수 있습니다.

echo와 print의 차이점:

둘 다 명령문이며, 두 명령문의 기능은 문자열을 출력하는 것입니다. 그러나

echo는 여러 매개변수를 전달할 수 있습니다. 단 하나의 인쇄가 있습니다.



echo "123", "123";//输出123123
print "123", "123";//报错,只可以写一个参数 print "123";
로그인 후 복사

echo에는 반환 값이 없으며 인쇄 반환 값은 항상 1입니다.

참고:

PHP의 8개 데이터 유형(배열 및 __toString 제외)은 그렇지 않습니다. 구현된 Magic 함수 객체는 echo 또는 print를 사용하여 출력할 수 있으며, 불리언 유형의 객체는 echo 또는 print를 사용하여 출력할 수 있으며 1만 표시하거나 표시하지 않습니다.



echo true; //输出1
echo false; //什么都不输出
로그인 후 복사

숫자와 문자열 추가:

PHP는 문자열과 숫자의 변환을 자동으로 완료합니다. 이는 때로는 이점을 제공하지만 때로는 매우 짜증스럽습니다.



echo 1 + "2";//输出3
echo 1 + "a";//输出1
로그인 후 복사

$a = 1 + "A" 변수 $a의 데이터 유형은 무엇입니까?



if(is_numeric($a)){
  echo "是整型";
}
else{
  echo "是其他类型";
}
//最后输出:是整型
로그인 후 복사

rand()와 mt_rand()의 차이점:

rand()와 mt_rand()의 사용법은 각각 정확히 두 가지입니다:



//第一种用法:
rand();//产生的随机数为0到getrandmax()之间
mt_rand();//产生的随机数为0到mt_getrandmax()之间
//第二种用法:
rand($min, $max);//产生从$min到$max之间的随机数
mt_rand($min, $max);//产生从$min到$max之间的随机数
로그인 후 복사

차이점: mt_rand()는 rand()보다 더 나은 난수 시드를 뿌리고 성능이 rand()보다 4배 빠르기 때문에 더 나은 난수 생성기입니다. mt_getrandmax() 표시되는 값의 범위도 다음과 같습니다. 더 커짐

BCMath 라이브러리와 GMP 라이브러리의 차이점:

BCMath 라이브러리는 사용하기 쉽습니다. 숫자를 문자열로 함수에 전달하면 숫자의 합계(또는 차이, 곱 등)가 문자열로 반환됩니다. 그러나 BCMath를 사용할 때 숫자에 대해 수행할 수 있는 연산은 기본적인 산술 연산으로 제한됩니다.



$sum = bcadd("12345678", "87654321");//$sum = "99999999"
로그인 후 복사

GMP 함수는 정수나 문자열을 매개변수로 받아들일 수 있지만 실제로는 숫자의 내부 표현에 대한 포인터인 리소스로 숫자를 전달하는 것을 선호합니다. 따라서 문자열을 반환하는 BCMath 함수와 달리 GMP는 리소스만 반환합니다. 이 리소스는 모든 GMP 기능에 숫자로 전달될 수 있습니다.



$four = gmp_add(2, 2);//可以传入整数
$eight = gmp_add('4', '4');//或字符串
$twelve = gmp_add($four, $eight);//或GMP资源
로그인 후 복사

GMP의 유일한 단점은 GMP가 아닌 함수로 리소스를 보거나 사용하려는 경우 gmp_strval() 또는 gmp_intval()을 사용하여 명시적으로 변환해야 한다는 것입니다.

참고

BCMath는 PHP와 함께 제공됩니다. GMP가 PHP와 함께 제공되지 않는 경우 별도로 다운로드하여 설치해야 합니다. 고정밀 수학 연산을 수행하기 위한 또 다른 옵션은 PECL의 big_int 라이브러리를 사용하는 것입니다.

include와 require의 차이점:

include() 및 require() 문은 지정된 파일을 포함하고 실행합니다. 두 구조는 포함 파일 측면에서 완전히 동일합니다. 유일한 차이점은 오류 처리입니다.


•require() 문에서 포함된 파일이 존재하지 않거나 오류가 발생하면 실행이 중지되고 보고됩니다. 오류.

•include()는 포함된 파일이 존재하지 않는 경우에만 경고를 생성하고 스크립트는 계속됩니다.

즉, 파일이 누락되었을 때 페이지 처리를 중지하려면 주저하지 말고 require()를 사용하세요. include()의 경우에는 그렇지 않으며 스크립트는 계속 실행됩니다.

include_once 및 require_once

•include_once()는 require_once()와 마찬가지로 스크립트 실행 중에 동일한 파일이 두 번 이상 포함될 수 있고 한 번만 포함되도록 하려는 경우에 사용해야 합니다. . 함수 재정의, 변수 재할당 등의 문제를 피하세요. 이것이 include_once()와 require_once(), include()와 require()의 주요 차이점입니다.

•require_once() 및 include_once()는 require() 및 include()보다 덜 효율적입니다. 왜냐하면 처음 두 개는 가져올 파일이 이미 존재하는지 확인해야 하기 때문입니다. `

PHP 병합 배열 +와 array_merge()의 차이점

同为数组合并,但是还是有差别的:

•键名为数字时,array_merge()不会覆盖掉原来的值,但+合并数组则会把最先出现的值作为最终结果返回,而把后面的数组拥有相同键名的那些值“抛弃”掉(不是覆盖)


$a = array('a','b'); 
$b = array('c', 'd'); 
$c = $a + $b; 
var_dump($c);
//输出:
// array (size=2)
// 0 => string 'a' (length=1)
// 1 => string 'b' (length=1) 
var_dump(array_merge($a, $b));
//输出:
//array (size=4)
// 0 => string 'a' (length=1)
// 1 => string 'b' (length=1)
// 2 => string 'c' (length=1)
// 3 => string 'd' (length=1)
로그인 후 복사

•键名为字符时,+仍然把最先出现的键名的值作为最终结果返回,而把后面的数组拥有相同键名的那些值“抛弃”掉,但array_merge()此时会覆盖掉前面相同键名的值


$a = array('a' => 'a' ,'b' => 'b');
$b = array('a' => 'A', 'b' => 'B');
$c = $a + $b;
var_dump($c);
//输出:
//array (size=2)
//'a' => string 'a' (length=1)
//'b' => string 'b' (length=1)
var_dump(array_merge($a, $b));
//输出:
//array (size=2)
//'a' => string 'A' (length=1)
//'b' => string 'B' (length=1)
로그인 후 복사

字符串常用函数

PHP提供了很多方便的字符串函数,常用的有:

•strstr ( string $haystack , mixed $needle [, bool $before_needle = false ] ) 。返回 haystack 字符串从 needle 第一次出现的位置开始到 haystack 结尾的字符串。若为before_needle为 TRUE,strstr() 将返回 needle 在 haystack 中的位置之前的部分。
•substr( string $string , int $start [, int $length ] ) 。返回字符串 string 由 start 和 length 参数指定的子字符串。
•substr_replace ( mixed $string , mixed $replacement , mixed $start [, mixed $length ] ) 。substr_replace() 在字符串 string 的副本中将由 start 和可选的 length 参数限定的子字符串使用 replacement 进行替换。
•strrev ( string $string ) 。返回 string 反转后的字符串。
•str_replace ( mixed $search , mixed $replace , mixed $subject [, int &$count ] ) 。该函数返回一个字符串或者数组。该字符串或数组是将 subject 中全部的 search 都被 replace 替换之后的结果。subject为执行替换的数组或者字符串。也就是 haystack。如果 subject 是一个数组,替换操作将遍历整个 subject,返回值也将是一个数组。如果count被指定,它的值将被设置为替换发生的次数。
•strpos ( string $haystack , mixed $needle [, int $offset = 0 ] ) 。返回 needle 在 haystack 中首次出现的数字位置;如果提供了offset参数,搜索会从字符串该字符数的起始位置开始统计。 如果是负数,搜索会从字符串结尾指定字符数开始。
•ltrim() 、 rtrim() 、 trim() 。这仨都是删除字符串中的空白符。 ltrim() 删除字符串开头的空白字符; rtrim() 删除字符串末端的空白字符; trim() 去除字符串首尾处的空白字符。 

위 내용은 PHP에 흩어져 있는 지식 포인트를 요약합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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