> 백엔드 개발 > PHP 튜토리얼 > PHP 사용자 정의 함수 및 내부 함수에 대한 설명

PHP 사용자 정의 함수 및 내부 함수에 대한 설명

小云云
풀어 주다: 2023-03-20 15:34:01
원래의
2130명이 탐색했습니다.

1. 변수 범위
변수의 범위라고도 합니다. 변수의 범위는 변수가 정의된 컨텍스트(유효 범위라고도 함)입니다.
대부분의 PHP 변수에는 단일 범위가 있습니다. 또한 소개된 include 및 require 파일도 포함됩니다.

전역 키워드: 함수 내부의 전역 키워드를 사용하여 전역 변수에 액세스할 수 있습니다.

$GLOBALS 및 기타 슈퍼 전역 배열을 사용할 수도 있습니다

예:

$str = 'xxxx';
function test(){
//方法一:
global $str;
echo $str;
//方法二
//echo $GLOBALS['str']
}
로그인 후 복사

2. 정적 변수
정적 변수는 로컬 함수 도메인에 존재하지만 프로그램 실행이 이 범위를 벗어나도 해당 값은 사라지지 않습니다

정적 키워드
한 번만 초기화됩니다
초기화 중에 값을 할당해야 합니다
함수가 실행될 때마다 값이 유지됩니다. 실행
정적으로 수정된 변수는 로컬이며, 함수 내에서만 유효
함수 호출 횟수를 기록하여 특정 조건에서 재귀를 종료할 수 있습니다

2.1, 전역 변수, 정적 변수

<?php

/**
 * 写出如下程序的输出结果:
 * <?php
 *
 * $count = 5;
 * function get_count()
 * {
 *     static $count;
 *     return $count++;
 * }
 * echo $count;
 * ++$count;
 *
 * echo get_count();
 * echo get_count();
 * 
 * ?>
 *
 */

$count = 5;
function get_count()
{
    static $count;
    return $count++;
}


echo $count;//5
++$count;

//这里还涉及到运算符:递减NULL值没有效果,但是递增NULL值为1
echo get_count();//null,第一次定义的static $count,内容为null,现返回内容null,再null++,结果为1
echo get_count();//1,static $count = 1,现返回1,再递增
로그인 후 복사


2.2, 함수 전송

<?php


$var1 = 5;
$var2 = 10;


function foo(&$my_var)
{
    global $var1;
    $var1 += 2;
    $var2 = 4;
    $my_var += 3;
    return $var2;
}


$my_var = 5;
echo foo($my_var). "\n";//4
echo $my_var. "\n";//8
echo $var1;//7
echo $var2;//10
$bar = &#39;foo&#39;;
$my_var = 10;
echo $bar($my_var). "\n";//4
로그인 후 복사


2.3, 함수 참조 반환

从函数返回一个引用,必须在函数声明和指派返回值给一个变量都是用引用运算符&
<?php

function &myFunc()
{
    static $b = 10;
    return $b;
}

echo myFunc();//10

$a = &myFunc();//此步a直接引用到b的地址

$a = 100;//修改a的值,相当于修改b的值

echo myFunc();//100 ,因为b是一个静态变量,该值会保留
로그인 후 복사


3. 외부 파일 가져오기
경로명이 있으면 경로에 따라 검색하고, 그렇지 않으면 include_path에서 검색
include_path가 없으면 파일이 있는 디렉터리에서 검색 호출 스크립트 파일이 있고 현재 작업 디렉터리

파일이 포함되면 파일에 포함된 코드는 포함이 있는 줄의 변수 범위를 상속합니다. 위 항목 중 어느 것도 발견되지 않으면 다음 오류 또는 경고가 발생합니다. require 및 require_once: 실패하면 치명적인 수준의 오류가 발생하고 프로그램이 중지됩니다.
include 및 include_once: 실패 시 경고 수준 오류만 생성되고 프로그램은 계속 실행됩니다.

둘 사이의 유일한 차이점은 포함된 파일 코드가 이미 존재하면 더 이상 포함되지 않는다는 것입니다.

4. 시스템 내장 기능
4.1, 시간 및 날짜 기능
date() //타임스탬프 형식 지정
strtotime( ) //영어 텍스트 변환 날짜와 시간을 Unix로 구문 분석합니다. timestamp
mktime() //Integer Unix timestamp
time() //현재 시간 타임스탬프를 가져옵니다.
microtime() //밀리초 가져오기
date_default_timezone_set() // 기본 시간대

4.2, ip 처리 기능
long2ip: 긴 정수를 점으로 구분된 인터넷 표준 형식 주소(IPV4)로 문자열 형식으로 변환
ip2long: IPV4 문자열 인터넷 프로토콜을 긴 정수로 변환

4.3, 인쇄 함수
echo()
여러 값을 쉼표로 구분하여 한 번에 출력할 수 있습니다. echo는 실제 함수가 아닌 언어 구조이므로 표현식의 일부로 사용할 수 없습니다.

print(): 단순 유형 변수(예: int, string)의 값
print() 함수는 값(해당 매개변수)을 인쇄하고 문자열이 성공적으로 표시되면 true를 반환하고, 그렇지 않으면 false를 반환합니다.

print_r(): 복잡한 유형의 변수(배열, 객체 등)의 값을 인쇄할 수 있습니다.
문자열과 숫자를 간단히 인쇄할 수 있으며, 배열은 키와 값이 포함된 목록 형식으로 표시됩니다. , 배열로 시작합니다. 그러나 Boolean 값과 NULL을 출력하는 print_r()의 결과는 모두 "n"을 인쇄하기 때문에 의미가 없습니다. 따라서 디버깅에는 var_dump() 함수를 사용하는 것이 더 적합합니다.
사람이 읽을 수 있는 변수 정보를 인쇄합니다. 문자열, 정수 또는 부동 소수점이 주어지면 변수 값 자체가 인쇄됩니다. 배열이 주어지면 키와 요소가 특정 형식으로 표시됩니다. 객체는 배열과 유사합니다. 기억하세요, print_r()은 배열 포인터를 끝으로 이동합니다. 포인터를 처음으로 되돌리려면 Reset()을 사용하세요.

var_dump()
이 함수는 표현식의 유형 및 값을 포함하여 하나 이상의 표현식에 대한 구조적 정보를 표시합니다. 배열은 값을 재귀적으로 확장하여 들여쓰기를 통해 구조를 표시합니다.
변수의 유형과 길이를 결정하고 변수의 값을 출력합니다. 변수에 값이 있으면 변수의 값이 출력되고 데이터 유형이 반환됩니다. 이 함수는 표현식의 유형 및 값을 포함하여 하나 이상의 표현식에 대한 구조적 정보를 표시합니다. 배열은 값을 재귀적으로 확장하여 들여쓰기를 통해 구조를 표시합니다.

var_export(): 변수의 문자열 표현을 내보내거나 반환합니다.
이 함수는 함수에 전달된 변수에 대한 구조적 정보를 반환합니다.

함수의 두 번째 매개 변수를 TRUE로 설정하여 변수 표현을 반환할 수 있습니다. 유효한 PHP 코드를 반환합니다.

var_dump和print_r的区别:
var_dump返回表达式的类型与值而print_r仅返回结果,相比调试代码使用var_dump更便于阅读。

var_dump和var_export的区别:
var_export() 函数返回关于传递给该函数的变量的结构信息,是合法的 PHP 代码,可以通过将函数的第二个参数设置为 TRUE,从而返回变量的表示
var_dump() 打印变量的相关信息

printf():根据格式进行输出
sprintf():根据格式转换字符串,并返回
로그인 후 복사


4.4, 직렬화 및 역직렬화 unserialize

<?php   
$a = array(&#39;a&#39; => 'Apple' ,'b' => 'banana' , 'c' => 'Coconut');   

//序列化数组   
$s = serialize($a);  
echo $s;  
//输出结果:a:3:{s:1:"a";s:5:"Apple";s:1:"b";s:6:"banana";s:1:"c";s:7:"Coconut";}   
echo '<br /><br />';  
  
//反序列化  
$o = unserialize($s);  
print_r($o);  
//输出结果 Array ( [a] => Apple [b] => banana [c] => Coconut )
로그인 후 복사


4.5, json_encode 및 json_decode

<?php 
$a = array(&#39;a&#39; => 'Apple' ,'b' => 'banana' , 'c' => 'Coconut');
//序列化数组
$s = json_encode($a);
echo $s;
//输出结果:{"a":"Apple","b":"banana","c":"Coconut"}
echo '<br /><br />';

//反序列化
$o = json_decode($s);

在上面的例子中,json_encode输出长度比上个例子中serialize输出长度显然要短
로그인 후 복사


4.6, 문자열 함수 php 문자열 사용 요약



4.7, 배열 함수
php 배열 작업

관련 권장 사항 :


로그를 기록하는 PHP 사용자 정의 함수

어떤 제출 방법을 결정하는 PHP 사용자 정의 함수

JS에 내장된 함수와 사용자 정의 함수를 사용하는 방법

위 내용은 PHP 사용자 정의 함수 및 내부 함수에 대한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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