목차
이 섹션에 설명된 콘텐츠
서문
파일 참조
include 및 include_once
require 및 require_once
파일 도입 메커니즘
가져온 파일 반품 문제
常量
魔术常量
引入文件和魔术常量的最佳示例
函数的结尾
操作变量的函数
PHP输出语句
echo
print
print_r
printf
var_dump
总结
백엔드 개발 PHP 튜토리얼 PHP 기초 튜토리얼 6: 함수와 상수

PHP 기초 튜토리얼 6: 함수와 상수

Mar 01, 2017 am 09:40 AM

이 섹션에 설명된 콘텐츠

  • include 및 include_once

  • require 및 require_once

  • 상수

  • 파일과 상수 조합 사례 소개

  • 가변 연산 기능

  • 출력문

서문

이전 기사에서 애플리케이션에 대해 논의했습니다. 함수의 작성은 하나의 파일에서만 이루어집니다. 다른 파일에서 함수를 호출하려는 경우 이전 섹션의 내용을 구현할 수 없지만 PHP 언어에서는 소개 개념을 제공합니다. 이 문제를 완벽하게 해결해 보세요.

파일 참조

a.php 파일과 같은 파일이 b.php 파일의 기능을 사용하려면 b 파일을 넣어야 합니다. in 이 함수는 a 파일에 도입됩니다. PHP에서는 목표를 달성하기 위한 네 가지 방법, 즉 include, include_once, require, require_once를 제공합니다.

총 4가지 방법이 있지만 소개 방법은 각각 다릅니다.

include 및 include_once

이름에서 알 수 있듯이 이 두 가져오기에는 모두 include가 있습니다. 오류(가져온 모든 파일이 올바른지 보장할 수 없기 때문에)는 프로그램을 종료하지 않지만 계속 실행됩니다.

<?php
    include &#39;a.php&#39;;

    echo &#39;上面引入的文件出错了&#39;;
로그인 후 복사

결과:
PHP 기초 튜토리얼 6: 함수와 상수

include

include는 파일을 소개하는 형식으로 두 가지 특징이 있습니다.

  1. include에 의해 도입된 파일에 오류가 발생하면 프로그램은 즉시 중지되지 않고 계속 실행됩니다.

  2. 파일을 가져온 경우 반복적으로 가져옵니다.

첫 번째 기능은 위에서 설명했고, 두 번째 기능은, 코드에 동일한 파일을 삽입하기 위해 반복적으로 include를 사용하면 해당 파일이 반복적으로 삽입됩니다.

<?php

/**
 * a.php文件的内容,一个求和的函数
 */
function sum($a,$b){
    return $a + $b;
}

//func.php文件的内容
<?php
    include &#39;a.php&#39;;
    include &#39;a.php&#39;;
    echo &#39;重复的引入文件&#39;;
로그인 후 복사

결과:
PHP 기초 튜토리얼 6: 함수와 상수

위에서 볼 수 있듯이 이때 include를 사용하면 오류가 보고됩니다. 즉, 이전에 파일을 도입했다는 의미입니다. 다시 소개할 수 없습니다.

include_once

include_once 소개에 오류가 있으면 계속 실행된다는 점을 제외하면 include와 매우 유사합니다. 소개되었으므로 다시 소개되지 않습니다.

<?php
    include_once &#39;a.php&#39;;
    include_once &#39;a.php&#39;;
    echo &#39;引入一次文件。&#39;;
.....结果......
引入一次文件。
로그인 후 복사

위 코드에서는 오류를 보고하지 않는 것을 볼 수 있습니다.

require 및 require_once

require 및 require_once는 파일을 소개하는 또 다른 방법입니다. 공유하는 특징은 다음과 같습니다.

가져온 파일에 오류가 발생하면 프로그램이 종료되고 실행되지 않습니다.

<?php
    require &#39;b.php&#39;;
    echo &#39;这句话不会执行&#39;;
로그인 후 복사

결과:
PHP 기초 튜토리얼 6: 함수와 상수

require

require는 파일을 소개하는 형식으로 두 가지 특징이 있습니다.

  1. require로 가져온 파일에 오류가 있으면 프로그램이 즉시 중지됩니다.

  2. 파일을 가져온 경우 반복적으로 가져옵니다.

첫 번째 기능은 위에서 설명했고, 두 번째 기능은, 코드에서 동일한 파일을 도입하기 위해 require를 반복적으로 사용하면 반복적으로 도입됩니다.

<?php

/**
 * a.php文件的内容,一个求和的函数
 */
function sum($a,$b){
    return $a + $b;
}

//func.php文件的内容
<?php
    require &#39;a.php&#39;;
    require &#39;a.php&#39;;
    echo &#39;引入一次文件。&#39;;
로그인 후 복사

결과:
PHP 기초 튜토리얼 6: 함수와 상수

위에서 볼 수 있듯이 이때 require를 사용하면 오류가 보고됩니다. 즉, 이전에 파일을 도입했다는 뜻입니다. 다시 소개할 수 없습니다.

require_once

require_once 오류가 발생하면 프로그램이 종료된다는 점을 제외하면 require와 매우 유사합니다. 소개되었으므로 다시 소개되지 않습니다.

<?php
    require_once &#39;a.php&#39;;
    require_once &#39;a.php&#39;;
    echo &#39;引入一次文件。&#39;;
.....结果......
引入一次文件。
로그인 후 복사

위 코드에서는 오류를 보고하지 않는 것을 볼 수 있습니다.


시스템에서는 4가지 방법을 제공하는데, 어떤 소개 방법을 선택해야 할지 어떻게 알 수 있나요?

특정 파일을 도입하는 경우(예: 데이터베이스 연결 획득, 파일 열기 등. 파일 도입에는 _once를 사용하는 것이 좋습니다) 리소스 낭비를 방지합니다. 우리는 개발 중에 require와 require_once를 자주 사용합니다.

require_once를 사용하는 것이 더 좋습니다. 이 방법을 사용하면 리소스를 절약하고 반복 정의로 인해 발생하는 오류를 피할 수 있기 때문입니다.

파일 도입 메커니즘

파일 도입에 대한 심층적 이해: PHP에서는 다른 파일이 파일에 도입되면 가져온 파일이 실행될 수 있습니다. 가져온 파일에 값을 반환하지 않으면 파일이 끝날 때까지 반환할 수 없습니다.

<?php

    echo &#39;这是引入的文件<br>&#39;;
    require_once &#39;b.php&#39;; //引入b文件
    echo &#39;当执行完引入的文件后执行这句话<br>&#39;;
b.php文件
<?php
    echo &#39;这是另外一个文件<br>&#39;;
    return;
......结果......
这是引入的文件
这是另外一个文件
当执行完引入的文件后执行这句话
로그인 후 복사

위 코드를 잘 살펴보면 가져온 파일에 return 종료 문을 사용하고 메인 파일의 종료를 종료하지 않는 것을 알 수 있습니다. 동일한 메모리에서 실행되더라도 해당 작업에는 영향을 미치지 않습니다.

가져온 파일 반품 문제

요약하면 반품 문제는 3가지입니다.

  • 在我们引入一个文件时,在默认的情况下,成功返回1

  • 我们也可以根据实际情况返回数据,比如一个数组。

  • 在引入文件过程中,当遇到被引入文件的return语句时,引入过程将终止,返回主文件,继续执行。


常量

在我们的开发过程中,往往需要一些全局性的值,就是已经确定并且我们在以后不会修改他们,比如说网站的根目录路径,这时候我们已经不能够使用变量,因为变量我们是可以修改的。在这里就介绍PHP中另外一种常量

常量:常量可以理解成是一种特殊的变量,一旦被定义,就不能再改变或者取消定义[即: 不能unset常量].

那我们用什么来定义常量呢?PHP中提供了两种方法来定义常量。

  • define(string $name ,常量的值);定义一个常量

    1. 第一个参数就是我们的常量名。

    2. 第二个参数是常量的值;仅允许标量和 null 。标量的类型是 integer , float , string 或者 boolean 。 也能够定义常量值的类型为 resource ,但并不推荐这么做,可能会导致未知状况的发生。

  • const 在 PHP 5.3.0 以后,可以使用 const 关键字在类定义之外定义常量。

我们在定义常量的时候,这两个都可以使用。

<?php
    define(&#39;PI&#39;,3.1415926);
    echo PI . &#39;<br>&#39;;
    const TAX = 0.012;
    echo TAX;
    ......结果......
    3.1415926
    0.012
로그인 후 복사

从上面的代码可以看出常量的定义和变量使不一样的,它们两个是有区别的。

常量和变量的区别:

  1. 常量前面没有美元符号($);

  2. 常量只能用 define() 函数定义,而不能通过赋值语句;

  3. 常量可以不用理会变量的作用域而在任何地方定义和访问;

  4. 常量一旦定义就不能被重新定义或者取消定义;

  5. 常量的值只能是标量。

  6. 常量的名字一般都是大写。

处理我们自己定义的常量外,PHP系统还给我们定义了一些常量,比如我们在讲整型的时候用到的PHP_INT_MAX,获取整型的最大值。

魔术常量

PHP语言可以说有一个特色,它的语法中有魔术这个概念。在系统常量中就有魔术这个概念,PHP称之为魔术常量,那什么是魔术常量?

魔术常量:PHP 向它运行的任何脚本提供了大量的预定义常量。不过很多常量都是由不同的扩展库定义的,只有在加载了这些扩展库时才会出现,或者动态加载后,或者在编译时已经包括进去了。(一大堆看不懂的话-_-);

简单的来说就是系统总共提供了八个魔术常量,它们的值随着它们在代码中的位置改变而改变。例如 __LINE__ 的值就依赖于它在脚本中所处的行来决定。这些特殊的常量不区分大小写。

PHP的魔术常量:

  1. __LINE__ 文件中的当前行号。

  2. __FILE__ 文件的完整路径和文件名。如果用在被包含文件中,则返回被包含的文件名。自 PHP 4.0.2 起, __FILE__ 总是包含一个绝对路径(如果是符号连接,则是解析后的绝对路径),而在此之前的版本有时会包含一个相对路径。

  3. __DIR__ 文件所在的目录。如果用在被包括文件中,则返回被包括的文件所在的目录。它等价于 dirname(__FILE__)。除非是根目录,否则目录中名不包括末尾的斜杠。(PHP 5.3.0中新增) =

  4. __FUNCTION__ 函数名称(PHP 4.3.0 新加)。自 PHP 5 起本常量返回该函数被定义时的名字(区分大小写)。在 PHP 4 中该值总是小写字母的。

  5. __CLASS__ 类的名称(PHP 4.3.0 新加)。自 PHP 5 起本常量返回该类被定义时的名字(区分大小写)。在 PHP 4 中该值总是小写字母的。类名包括其被声明的作用区域(例如 Foo\Bar)。注意自 PHP 5.4 起 __CLASS__ 对 trait 也起作用。当用在 trait 方法中时,__CLASS__ 是调用 trait 方法的类的名字。

  6. __TRAIT__ Trait 的名字(PHP 5.4.0 新加)。自 PHP 5.4 起此常量返回 trait 被定义时的名字(区分大小写)。Trait 名包括其被声明的作用区域(例如 Foo\Bar)。

  7. __METHOD__ 类的方法名(PHP 5.0.0 新加)。返回该方法被定义时的名字(区分大小写)。

  8. __NAMESPACE__ 当前命名空间的名称(区分大小写)。此常量是在编译时定义的(PHP 5.3.0 新增)。

示例:

<?php
    define(&#39;PI&#39;,3.1415926);
    echo PI . &#39;<br>&#39;;
    const TAX = 0.012;
    echo TAX . &#39;<br>&#39;;

    echo __DIR__; //使用魔术常量来获取当前文件所在的绝对路径。
    ......结果......
    3.1415926
    0.012
    D:\mywamp\Apache24\htdocs\zendstudio\yunsuanfu
로그인 후 복사

可以看到在使用__DIR__这个魔术常量的时候,在运行后,自动获取文件当前的绝对路径。

上面的内容就是常量的使用,当然还是多练。当我们在开发中怎么利用魔术常量和文件引入开发呢?


引入文件和魔术常量的最佳示例

在开发中我们在引入文件的时候,文件的路径是一个关键,我们有两种选择,一种是相对路径,一种是绝对路径。开发中我们往往选择是绝对路径,也就是文件所在的路径比如c:/mywamp/apache24/…,这种格式就可以理解为绝对路径。

在这里我们来对引入文件和魔术常量进行一个综合应用:

PHP 기초 튜토리얼 6: 함수와 상수

在上面使我们在开发中可能用到的文件夹,今天我们只是简单的进行使用,就是后面的流程

  • 在lib文件夹下有一些f函数文件,里面有我们使用的函数,我们可以定义为function.php

  • 在lib的init.php中使用魔术常量来定义一些常量,用来表示文件的绝对路径,就算你把项目的路径换了,也是可以的,同时在init.php中引入函数库

  • 在index.php中引入init.php文件。

function.php:

<?php

    function getSum($a,$b){ //计算两个数的和
        return $a + $b;
    }

    function getSub($a,$b){ //计算两个数的差
        return $a - $b;
    }
로그인 후 복사

init.php

<?php

    //定义项目的根目录
    define(&#39;WEB_ROOT_PATH&#39;,dirname(__DIR__) . &#39;/&#39;);

    //定义css的路径
    define("CSS_PATH",WEB_ROOT_PATH . &#39;css/&#39;);

    //定义js的路径
    define(&#39;JS_PATH&#39;,WEB_ROOT_PATH . &#39;js/&#39;);

    //定义图片的路径
    define(&#39;IMAGE_PATH&#39;,WEB_ROOT_PATH . &#39;image/&#39;);

    //定义存放模板的路径
    define(&#39;TEMPLATE_PATH&#39;,WEB_ROOT_PATH . &#39;template/&#39;);

    //定义lib的路径
    define(&#39;LIB_PATH&#39;,WEB_ROOT_PATH . &#39;lib/&#39;);

    //定义model的路径
    define(&#39;MODEL_PATH&#39;,WEB_ROOT_PATH . &#39;model/&#39;);


    //我们使用lib的绝对路径来引入function.php文件
    require LIB_PATH . &#39;function.php&#39;;
로그인 후 복사

在init中我们使用魔术常量__DIR__来动态的获取文件的所在目录,然后通过dirname()(说明给出一个包含有指向一个文件的全路径的字符串,本函数返回去掉文件名后的目录名),得到项目的根目录,然后根据根目录得到各个文件夹的绝对路径,在最后通过绝对路径引入函数文件。

index.php

<?php
    require_once &#39;./lib/init.php&#39;; //这里通过相对路径来获取初始化文件

    //上面的表示已经引入了初始化文件,而我们在初始化中又引入了函数文件,所以可以在这里直接用函数文件里面的函数。

    $sum = getSum(10,23);
    $sub = getSub(10,5);
    echo $sum;
    echo &#39;<br>&#39;;
    echo $sub;
    ......结果......
    33
    5
로그인 후 복사

可以看到在index.php文件中可以正常的使用lib下的函数文件里面的函数。

上面的就是引入文件和魔术常量的最基本的用法。

函数的结尾

通过上面的介绍,算是基本介绍完了函数的使用和常量的使用,学完函数,我们在来回顾回顾以前不知道的。

操作变量的函数

  • isset() : 检测变量是否设置,未定义或值为null时返回假

  • unset() : 销毁指定的变量。你可以在函数中传入变量进行销毁。

  • empty() : 判断一个变量是否被认为是空的。当一个变量并不存在,或者它的值等同于 FALSE ,那么它会被认为不存在。

  • is_int() : is系列有很多函数,用来判断变量的类型,如is_int,当变量是整型类型的,返回true,否则返回false。

PHP输出语句

echo

echo 实际上不是一个函数,是PHP语句,所以后面可以不适用括号,当你想用echo输出多个值得时候,可以用逗号隔开。echo并没有返回值。

print

print 和echo用法一样,但是echo的速度要比print的速度快,print也不是一个函数,它是有返回值得,总是返回1.

print_r

print_r(变量)打印关于变量的易于理解的信息。如果变量是string,integer,float将会直接输出其值,如果变量是一个数组,则会输出一个格式化后的数组。

printf

printf函数返回一个格式化后的字符串,它的语法是

printf(format,arg1,arg2)
로그인 후 복사

var_dump

var_dump()一般我们是输出变量的内容,类型和字符串的内容,类型,长度,从而我们可以看到变量的类型是什么。

总结

通过这两节的讲解,函数和常量的知识算是说完了,函数的调用过程和操作在以后开发中我们一定要了然于胸。

 以上就是PHP基础教程六之函数、常量的内容,更多相关内容请关注PHP中文网(www.php.cn)!


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

핫 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를 무료로 생성하십시오.

인기 기사

R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 최고의 그래픽 설정
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 아무도들을 수없는 경우 오디오를 수정하는 방법
4 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25 : Myrise에서 모든 것을 잠금 해제하는 방법
1 몇 달 전 By 尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

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

Ubuntu 및 Debian용 PHP 8.4 설치 및 업그레이드 가이드 Ubuntu 및 Debian용 PHP 8.4 설치 및 업그레이드 가이드 Dec 24, 2024 pm 04:42 PM

PHP 8.4는 상당한 양의 기능 중단 및 제거를 통해 몇 가지 새로운 기능, 보안 개선 및 성능 개선을 제공합니다. 이 가이드에서는 Ubuntu, Debian 또는 해당 파생 제품에서 PHP 8.4를 설치하거나 PHP 8.4로 업그레이드하는 방법을 설명합니다.

CakePHP 토론 CakePHP 토론 Sep 10, 2024 pm 05:28 PM

CakePHP는 PHP용 오픈 소스 프레임워크입니다. 이는 애플리케이션을 훨씬 쉽게 개발, 배포 및 유지 관리할 수 있도록 하기 위한 것입니다. CakePHP는 강력하고 이해하기 쉬운 MVC와 유사한 아키텍처를 기반으로 합니다. 모델, 뷰 및 컨트롤러 gu

CakePHP 파일 업로드 CakePHP 파일 업로드 Sep 10, 2024 pm 05:27 PM

파일 업로드 작업을 위해 양식 도우미를 사용할 것입니다. 다음은 파일 업로드의 예입니다.

PHP 개발을 위해 Visual Studio Code(VS Code)를 설정하는 방법 PHP 개발을 위해 Visual Studio Code(VS Code)를 설정하는 방법 Dec 20, 2024 am 11:31 AM

VS Code라고도 알려진 Visual Studio Code는 모든 주요 운영 체제에서 사용할 수 있는 무료 소스 코드 편집기 또는 통합 개발 환경(IDE)입니다. 다양한 프로그래밍 언어에 대한 대규모 확장 모음을 통해 VS Code는

PHP에서 HTML/XML을 어떻게 구문 분석하고 처리합니까? PHP에서 HTML/XML을 어떻게 구문 분석하고 처리합니까? Feb 07, 2025 am 11:57 AM

이 튜토리얼은 PHP를 사용하여 XML 문서를 효율적으로 처리하는 방법을 보여줍니다. XML (Extensible Markup Language)은 인간의 가독성과 기계 구문 분석을 위해 설계된 다목적 텍스트 기반 마크 업 언어입니다. 일반적으로 데이터 저장 AN에 사용됩니다

CakePHP 빠른 가이드 CakePHP 빠른 가이드 Sep 10, 2024 pm 05:27 PM

CakePHP는 오픈 소스 MVC 프레임워크입니다. 이를 통해 애플리케이션 개발, 배포 및 유지 관리가 훨씬 쉬워집니다. CakePHP에는 가장 일반적인 작업의 과부하를 줄이기 위한 여러 라이브러리가 있습니다.

문자열로 모음을 계산하는 PHP 프로그램 문자열로 모음을 계산하는 PHP 프로그램 Feb 07, 2025 pm 12:12 PM

문자열은 문자, 숫자 및 기호를 포함하여 일련의 문자입니다. 이 튜토리얼은 다른 방법을 사용하여 PHP의 주어진 문자열의 모음 수를 계산하는 방법을 배웁니다. 영어의 모음은 A, E, I, O, U이며 대문자 또는 소문자 일 수 있습니다. 모음이란 무엇입니까? 모음은 특정 발음을 나타내는 알파벳 문자입니다. 대문자와 소문자를 포함하여 영어에는 5 개의 모음이 있습니다. a, e, i, o, u 예 1 입력 : String = "Tutorialspoint" 출력 : 6 설명하다 문자열의 "Tutorialspoint"의 모음은 u, o, i, a, o, i입니다. 총 6 개의 위안이 있습니다

JWT (JSON Web Tokens) 및 PHP API의 사용 사례를 설명하십시오. JWT (JSON Web Tokens) 및 PHP API의 사용 사례를 설명하십시오. Apr 05, 2025 am 12:04 AM

JWT는 주로 신분증 인증 및 정보 교환을 위해 당사자간에 정보를 안전하게 전송하는 데 사용되는 JSON을 기반으로 한 개방형 표준입니다. 1. JWT는 헤더, 페이로드 및 서명의 세 부분으로 구성됩니다. 2. JWT의 작업 원칙에는 세 가지 단계가 포함됩니다. JWT 생성, JWT 확인 및 Parsing Payload. 3. PHP에서 인증에 JWT를 사용하면 JWT를 생성하고 확인할 수 있으며 사용자 역할 및 권한 정보가 고급 사용에 포함될 수 있습니다. 4. 일반적인 오류에는 서명 검증 실패, 토큰 만료 및 대형 페이로드가 포함됩니다. 디버깅 기술에는 디버깅 도구 및 로깅 사용이 포함됩니다. 5. 성능 최적화 및 모범 사례에는 적절한 시그니처 알고리즘 사용, 타당성 기간 설정 합리적,

See all articles