찾다
백엔드 개발PHP 튜토리얼강력하지만 거의 사용되지 않는 PHP 함수
강력하지만 거의 사용되지 않는 PHP 함수Jan 02, 2018 pm 03:09 PM
php기능강한

이 글에서는 PHP에서 강력하지만 거의 사용되지 않는 기능을 주로 소개하고, 함수 호출, 등록, 호출, 판단 및 기타 조작 기술을 포함하여 PHP에서 매우 실용적인 여러 기능을 예제 형식으로 요약하고 분석합니다. 도움이 필요한 친구들이 참고하면 좋을 것 같아요.

자세한 내용은 다음과 같습니다.

call_user_func_array — 배열 형식의 매개변수를 사용하여 함수 호출
call_user_func — 기존 함수 호출
create_function — 함수 생성
func_get_arg — 함수에서 매개변수 값 가져오기
func_get_args — 함수 가져오기 모든 매개변수가 배열로 결합됩니다.
func_num_args — 함수의 매개변수 개수 가져오기
function_exists — 함수 존재 여부 확인
get_define_functions — 기존 함수 정보 가져오기
register_shutdown_function — 페이지 이후에 실행될 함수 등록 로드됨
register_tick_function — 요청 시 호출된 함수 등록
unregister_tick_function — 요청 시 호출된 함수 취소

get_define_functions는 모든 PHP 함수와 사용자 정의 함수를 가져올 수 있습니다.

<?php
function a(){}
$b = get_defined_functions();
print_r($b);
//也许会显示1000多个已定义了的函数:)
?>

function_exists 함수는 함수가 존재하는지 확인합니다(PHP 함수일 수 있음) 또는 사용자 정의 기능).

<?php
if (function_exists(&#39;a&#39;)) {
  echo "yes";
} else {
  echo "no";
}
function a(){}
// 显示 yes
?>

call_user_func 함수는 함수를 호출하는 특별한 방법과 유사합니다. 사용 방법은 다음과 같습니다.

<?php
function a($b,$c)
{
  echo $b;
  echo $c;
}
call_user_func(&#39;a&#39;, "111","222");
call_user_func(&#39;a&#39;, "333","444");
//显示 111 222 333 444
?>

클래스 내부에서 메서드를 호출하는 것이 이상합니다. 실제로는 배열을 사용합니다. 물론 개발자의 생각은 생략되었습니다. new도 새로운 아이디어로 가득 차 있습니다.

<?php
class a {
  function b($c)
  {
    echo $c;
  }
}
call_user_func(array("a", "b"),"111");
//显示 111
?>

call_user_func_array 함수는 call_user_func의 구조를 만들기 위해 매개변수가 다른 방식으로 전달된다는 점을 제외하면 call_user_func와 매우 유사합니다. 매개변수 명확화:

<?php
function a($b, $c)
{
  echo $b;
  echo $c;
}
call_user_func_array(&#39;a&#39;, array("111", "222"));
//显示 111 222
?>

call_user_func 함수와 call_user_func_array 함수 모두 참조를 지원하므로 일반 함수 호출과 기능적으로 더 일관성이 있습니다.

<?php
function a(&$b)
{
  $b++;
}
$c = 0;
call_user_func(&#39;a&#39;, &$c);
echo $c;//显示 1
call_user_func_array(&#39;a&#39;, array(&$c));
echo $c;//显示 2
?>

func_num_args 함수는 함수에서 수신한 매개변수 수를 가져올 수 있습니다.

<?php
function a()
{
  echo func_num_args();
}
a(111, 222, 333);
//显示 3
?>

func_get_arg 함수는 다음을 수행할 수 있습니다. 다음 예에서는 함수에서 어떤 매개변수가 허용되는지 지정하지 않습니다. func_get_arg를 사용하여 추가 매개변수를 얻을 수도 있습니다.

<?php
function a()
{
   echo func_get_arg(1);
}
a (111, 222, 333);
//显示 222
?>

func_get_args 함수는 func_get_arg와 매우 유사합니다. 모든 매개변수를 배열로 호출합니다.

<?php
function a()
{
  $numargs = func_num_args();
  $b = func_get_args();
  for ($i = 0; $i < $numargs; $i++) {
    echo $b[$i];
  }
}
a(111, 222, 333);
//显示 111 222 333
?>

create_function 함수를 생성할 수 있습니다. 익명 함수(기본적으로 PHP에서 함수 이름은lambda_1,lambda_2)처럼 보이지만 두 번째 문이 이상하다는 점에 유의하세요. 매개변수는 ";"로 구분되어야 합니다.

<?php
$newfunc = create_function(&#39;$a,$b&#39;, &#39;return $a + $b;&#39;);
echo $newfunc;
echo $newfunc(2, 3);
//显示 lambda_1 5
?>

register_shutdown_function 함수는 페이지가 로드된 후 실행되는 함수를 등록할 수 있습니다(함수는 캐싱과 약간 비슷합니다). call_user_func 함수:

<?php
function a() {
  echo 222 ;
}
echo 111;
register_shutdown_function(&#39;a&#39;);
//显示 111 222
?>
<?php
class a
{
  function b ($c)
  {
   echo $c;
  }
}
register_shutdown_function (array (&#39;a&#39;, &#39;b&#39;), &#39;111&#39;);
//显示 111
?>

register_tick_function 및 unregister_tick_function은 선언 프로세스 제어 메커니즘과 결합되어야 합니다. 그런 다음 먼저 선언 및 틱을 이해하겠습니다.

declare (directive){
statement
}

Tick은 인터프리터가 선언 코드에서 N 개의 하위 수준 문을 실행할 때마다 발생하는 이벤트입니다. 분절. N 값은 선언의 지시문 부분에서 Ticks=N으로 지정됩니다. 각 틱에서 발생하는 이벤트는 Register_tick_function()에 의해 지정됩니다. 예는 다음과 같습니다.

<?
function foo($str) {
static $i = 0;
print "$str: $i<br>";
$i++;
}
register_tick_function("foo", "count");
declare (ticks = 6) {
for($i=0; $i<20; $i++) {
echo "$i<br>";
}
}
?>

이 예의 선언(ticks = N){statement} 프로세스 제어에서는 6줄의 코드(ticks = 6)가 실행될 때마다 foo() 함수가 한 번 실행되어야 합니다. 틱 값을 변경하면 다른 실행 결과를 얻을 수 있습니다.

관련 추천 :

PHP 함수 구문 소개 1_PHP Tutorial

PHP 함수 실행 효율성의 소소한 비교_PHP Tutorial

php 함수 사용 방법과 함수 정의 방법_ PHP Tutorial

위 내용은 강력하지만 거의 사용되지 않는 PHP 함수의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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

php把负数转为正整数的方法:1、使用abs()函数将负数转为正数,使用intval()函数对正数取整,转为正整数,语法“intval(abs($number))”;2、利用“~”位运算符将负数取反加一,语法“~$number + 1”。

php怎么实现几秒后执行一个函数php怎么实现几秒后执行一个函数Apr 24, 2022 pm 01:12 PM

实现方法:1、使用“sleep(延迟秒数)”语句,可延迟执行函数若干秒;2、使用“time_nanosleep(延迟秒数,延迟纳秒数)”语句,可延迟执行函数若干秒和纳秒;3、使用“time_sleep_until(time()+7)”语句。

php字符串有没有下标php字符串有没有下标Apr 24, 2022 am 11:49 AM

php字符串有下标。在PHP中,下标不仅可以应用于数组和对象,还可应用于字符串,利用字符串的下标和中括号“[]”可以访问指定索引位置的字符,并对该字符进行读写,语法“字符串名[下标值]”;字符串的下标值(索引值)只能是整数类型,起始值为0。

php怎么除以100保留两位小数php怎么除以100保留两位小数Apr 22, 2022 pm 06:23 PM

php除以100保留两位小数的方法:1、利用“/”运算符进行除法运算,语法“数值 / 100”;2、使用“number_format(除法结果, 2)”或“sprintf("%.2f",除法结果)”语句进行四舍五入的处理值,并保留两位小数。

php怎么读取字符串后几个字符php怎么读取字符串后几个字符Apr 22, 2022 pm 08:31 PM

在php中,可以使用substr()函数来读取字符串后几个字符,只需要将该函数的第二个参数设置为负值,第三个参数省略即可;语法为“substr(字符串,-n)”,表示读取从字符串结尾处向前数第n个字符开始,直到字符串结尾的全部字符。

php怎么根据年月日判断是一年的第几天php怎么根据年月日判断是一年的第几天Apr 22, 2022 pm 05:02 PM

判断方法:1、使用“strtotime("年-月-日")”语句将给定的年月日转换为时间戳格式;2、用“date("z",时间戳)+1”语句计算指定时间戳是一年的第几天。date()返回的天数是从0开始计算的,因此真实天数需要在此基础上加1。

php怎么替换nbsp空格符php怎么替换nbsp空格符Apr 24, 2022 pm 02:55 PM

方法:1、用“str_replace("&nbsp;","其他字符",$str)”语句,可将nbsp符替换为其他字符;2、用“preg_replace("/(\s|\&nbsp\;||\xc2\xa0)/","其他字符",$str)”语句。

php怎么查找字符串是第几位php怎么查找字符串是第几位Apr 22, 2022 pm 06:48 PM

查找方法:1、用strpos(),语法“strpos("字符串值","查找子串")+1”;2、用stripos(),语法“strpos("字符串值","查找子串")+1”。因为字符串是从0开始计数的,因此两个函数获取的位置需要进行加1处理。

See all articles

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

뜨거운 도구

SublimeText3 영어 버전

SublimeText3 영어 버전

권장 사항: Win 버전, 코드 프롬프트 지원!

mPDF

mPDF

mPDF는 UTF-8로 인코딩된 HTML에서 PDF 파일을 생성할 수 있는 PHP 라이브러리입니다. 원저자인 Ian Back은 자신의 웹 사이트에서 "즉시" PDF 파일을 출력하고 다양한 언어를 처리하기 위해 mPDF를 작성했습니다. HTML2FPDF와 같은 원본 스크립트보다 유니코드 글꼴을 사용할 때 속도가 느리고 더 큰 파일을 생성하지만 CSS 스타일 등을 지원하고 많은 개선 사항이 있습니다. RTL(아랍어, 히브리어), CJK(중국어, 일본어, 한국어)를 포함한 거의 모든 언어를 지원합니다. 중첩된 블록 수준 요소(예: P, DIV)를 지원합니다.

Eclipse용 SAP NetWeaver 서버 어댑터

Eclipse용 SAP NetWeaver 서버 어댑터

Eclipse를 SAP NetWeaver 애플리케이션 서버와 통합합니다.

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

맨티스BT

맨티스BT

Mantis는 제품 결함 추적을 돕기 위해 설계된 배포하기 쉬운 웹 기반 결함 추적 도구입니다. PHP, MySQL 및 웹 서버가 필요합니다. 데모 및 호스팅 서비스를 확인해 보세요.