php教程 php手册 PHP 학습 노트에 대한 기본 지식

PHP 학습 노트에 대한 기본 지식

Jul 18, 2017 am 09:26 AM
php 베이스

저는 1년 넘게 PHP를 공부해 왔습니다. 많은 노트가 쌓여 있고 그것들을 정리하기 위해 글을 쓰겠습니다.

PHP 기본 부분

<span style="font-family:新宋体">PHP</span> 텍스트 출력을 위한 기본 명령: <span style="font-family:新宋体">echo</span><span style="font-family:新宋体">print</span>.

echo와 print의 차이점

<span style="font-family:新宋体">echo</span>은 PHP 문이고, <span style="font-family:新宋体">print</span><span style="font-family:新宋体">print_r</span>은 함수이고, 문에는 반환 값이 없으며, 함수는 반환 값을 가질 수 있음(쓸모 없더라도)

<span style="font-family:新宋体">echo</span> 하나 이상의 문자열을 출력합니다.
<span style="font-family:新宋体">print</span> 단순형 변수(int, string 등)의 값만 출력 가능
<span style="font-family:新宋体">print_r</span> 복합형 변수(배열, 객체 등)의 값만 출력 가능

var_dump와 print_r

<span style="font-family:新宋体">var_dump</span>의 차이점은 표현식의 유형과 값을 반환하는 반면, <span style="font-family:新宋体">print_r</span>는 결과만 반환하므로 디버깅을 위해 <span style="font-family:新宋体">var_dump</span>를 사용하는 것보다 읽기 쉽습니다. 암호.

변수

변수는 숫자, 텍스트 문자열 또는 배열과 같은 값을 저장하는 데 사용됩니다. PHP의 모든 변수는 $ 기호로 시작합니다.
PHP 변수 이름은 대소문자를 구분합니다!

PHP에는 세 가지 변수 범위가 있습니다.

<code>local(局部)<br>global(全局)<br>static(静态)</code>
로그인 후 복사

함수 외부에서 선언된 변수는 <span style="font-family:新宋体">Global</span> 범위를 가지며 함수 외부에서만 액세스할 수 있습니다.

함수 내부에 선언된 변수는 <span style="font-family:新宋体">LOCAL</span> 범위를 가지며 함수 내부에서만 접근할 수 있습니다.

<span style="font-family:新宋体">global</span> 키워드는 함수 내의 전역 변수에 액세스하는 데 사용됩니다.

PHP 정적 키워드

일반적으로 함수가 완료/실행되면 모든 변수가 삭제됩니다. 그러나 때로는 지역 변수를 삭제하지 않아야 할 때도 있습니다. 이를 달성하려면 추가 작업이 필요합니다.

이를 수행하려면 변수를 처음 선언할 때 static 키워드를 사용하세요.

<code><?php    <br/>function myTest() {<br/>   static $x=-1;<br/>   echo $x;<br/>   $x--;<br/>}<br/>myTest();//-1<br/>echo "<br/>";<br/>myTest();//-2<br/>echo "<br/>";<br/>myTest();//-3<br/>?></code>
로그인 후 복사

php type

php类型:**PHP 支持八种原始类型。**
로그인 후 복사

부울

부울 값을 지정하려면 TRUE 또는 FALSE 키워드를 사용하세요. 둘 다 대소문자를 구분하지 않습니다.

정수형

(int)를 사용하여 십진수를 정수로 변환할 수 있습니다.

<code><?php<br/>    var_dump((int)(26/3));//int(8)<br/>?></code>
로그인 후 복사

배열

PHP에는 세 가지 유형의 배열이 있습니다.

<code>索引数组:就是下标是顺序整数作为作为索引(比如第几排第几列)$class[5]<br>关联数组:就是下标是字符串作为索引(比如名字)$class2["zhangsan"]<br>多维数组 - 包含一个或多个数组的数组</code>
로그인 후 복사

아래 첨자는 정수 또는 문자열입니다.

<code><?php<br/>$array = array(<br/>    "foo" => "bar",<br>    "bar" => "foo",<br>);<br>// 自 PHP 5.4 起<br>$array = [<br>    "foo" => "bar",<br>    "bar" => "foo",<br>];<br>?></code>
로그인 후 복사

배열 셀은 <span style="font-family:新宋体">array[key]</span> 구문을 통해 액세스할 수 있습니다.
참고: 이는 항상 키 이름을 인용한다는 의미는 아닙니다. 상수나 변수의 키 이름을 인용할 필요가 없습니다. 그렇지 않으면 <span style="font-family:新宋体">PHP</span>가 이를 구문 분석할 수 없습니다.

배열 연산자

예제 이름 결과 $a + $b Union $a와 $b의 합집합 $a == $b $a와 $b가 동일한 키/값을 갖는 경우 같음 TRUE if $a === $b $a와 $b가 동일한 키/값 쌍을 가지며 동일한 순서 및 유형인 경우 $a != $b 동일하지 않음 $a가 $b와 같지 않으면 TRUE$a <> $a가 $b와 같지 않으면 TRUE$a입니다. == $b가 $b와 같지 않으면 TRUE입니다.




<span style="font-family:新宋体">+</span> 运算符把右边的数组元素附加到左边的数组后面,两个数组中都有的键名,则只用左边数组中的,右边的被忽略。

对象

要初始化一个对象,用 new 语句将对象实例到一个变量中。

常用函数

strlen() 函数用于计算字符串的长度。
strpos() 函数用于在字符串内检索一段字符串或一个字符。

常量

可以用 define() 函数来定义常量。一个常量一旦被定义,就不能再改变或者取消定义。
常用的魔术常量:

定义常量例子:

<code><?php<br/>define("poems" , "Homeric epic");<br/>echo poems ;//outputs "Homeric epic" <br/>?></code>
로그인 후 복사

php字符串运算符

在 PHP 中,只有一个字符串运算符。
并置运算符 <span style="font-family:新宋体">(.)</span> 用于把两个字符串值连接起来。如:echo "a= ".$a."<br>";
左边将字符串文字"a="与变量$a的值连接,第二处是与换行符<span style="font-family:新宋体">"<br>"</span>连接

php函数

函数只有在被调用时才会被执行,这点和js是一样的,同样,函数定义也是以function关键字开头的。

<code><?php<br/>    function sum($x,$y){<br/>        $z=$x + $y;<br/>        return $z;<br/>    }<br/>    echo "-2+10= ".sum(-2,10);//outputs "-2+10=8"<br/>?></code>
로그인 후 복사

当没有<span style="font-family:新宋体">return</span>语句时,以上将会变成"-2+10=";

流程控制

在这里,只讲下<span style="font-family:新宋体">foreach</span>语句。

<span style="font-family:新宋体">foreach</span>语句遍历输出数组:
语法:

foreach (array_expression as $value){ statement};
foreach (array_expression as $key => $value){ statement};
로그인 후 복사

参数<span style="font-family:新宋体">array_expression</span>是指定要遍历的数组,<span style="font-family:新宋体">$value</span>是数组的值

<code><?php<br/>     $actors [0] ="Marry";<br/>     $actors [1] ="Lorry";<br/>     $actors [2] = "mike";<br/>     foreach ($actors as $values){<br/>     echo "Name:$values<br/>"; <br/>}<br/>?></code>
로그인 후 복사

以上代码将输出:
Name:Marry
Name:Lorry
Name:mike

两个重要的魔术方法

    1. __set( )方法:这个方法用来为私有成员属性设置值的,有两个参数,第一个参数为你  要为设置值的属性名,第二个参数是要给属性设置的值,没有返回值。
    2. __get()方法:这个方法用来获取私有成员属性值的,有一个参数,参数传入你要获取的成员属性的名称,返回获取的属性值,这个方法不用我们手工的去调用
로그인 후 복사

php中方法不区分大小写

require(dirname(__FILE__).'/global.php'); //引入全局文件
require(dirname(__FILE__).'/config.ini.php'); //引入基本配置文件
로그인 후 복사

对象运算符和双冒号运算符

在类的成员方法里面,可以用 ->(对象运算符):<span style="font-family:新宋体">$this->property</span>(其中 property 是该属性名)这种方式来访问非静态属性。
静态属性则是用 <span style="font-family:新宋体">::</span>(双冒号):<span style="font-family:新宋体">self::$property</span> 来访问。

=>和->

<span style="font-family:新宋体">=></span>数组成员访问符号,<span style="font-family:新宋体">-></span>对象成员访问符号;
<span style="font-family:新宋体">$this</span>-<span style="font-family:新宋体">>$name=$value</span>:将当前类的<span style="font-family:新宋体">name</span>变量的值设为<span style="font-family:新宋体">$value</span>;
<span style="font-family:新宋体">$this</span>代表了类本身,<span style="font-family:新宋体">-></span>是访问其类成员的操作符
双冒号运算符(<span style="font-family:新宋体">::</span>)类名<span style="font-family:新宋体">::</span>静态属性/方法
<span style="font-family:新宋体">::</span>”用来调用类中静态的属性和方法

<span style="font-family:新宋体">include()</span>:包含外部文件,语法格式为 include(string filename);
<span style="font-family:新宋体">require()</span>:会输出错误信息,终止脚本
<span style="font-family:新宋体">include_once()</span>:多次调用相同文件时,程序只会调用一次
<span style="font-family:新宋体">require_once()</span>:先检查文件是否在其他地方被调用过
<span style="font-family:新宋体">array_pop()</span>:获取并返回数组中的最后一个元素
<span style="font-family:新宋体">count()</span>:统计数组中的元素个数
<span style="font-family:新宋体">array_search()</span>:获取数组中元素的键名
<span style="font-family:新宋体">$array_keys()</span>:获取数组中重复元素的所有键名

单引号和双引号

PHP把单引号中的数据视为普通字符串,不再处理。而双引号还要对其中的字符串进行处理

get和post

$_GET[ ]和$_POST[ ]全局数组:分别用来接收GET和POST方法传递到当前页面的数据。“[ ]”里面是name.

php参数传递常用的方法有3种:$_POST[ ]、$_GET[ ]、$_SESSION[ ],分别用于获取表单、URL与Session变量的值。

表单提交中get和post方式的区别归纳如下几点:

<code>GET是从服务器上获取数据,POST是向服务器传送数据。<br>GET 是把参数数据队列加到提交表单的ACTION属性所指的URL中,值和表单内各个字段一一对应,在URL中可以看到。POST是通过HTTP POST机制,将表单内各个字段与其内容放置在HTML HEADER内一起传送到ACTION属性所指的URL地址。用户看不到这个过程。<br>对于GET方式,服务器端用Request.QueryString获取变量的值,对于POST方式,服务器端用Request.Form获取提交的数据。<br>GET传送的数据量较小,不能大于2KB(这主要是因为受URL长度限制)。POST传送的数据量较大,一般被默认为不受限制。但理论上,限制取决于服务器的处理能力。<br>GET 安全性较低,POST安全性较高。因为GET在传输过程,数据被放在请求的URL中,而如今现有的很多服务器、代理服务器或者用户代理都会将请求URL记 录到日志文件中,然后放在某个地方,这样就可能会有一些隐私的信息被第三方看到。另外,用户也可以在浏览器上直接看到提交的数据,一些系统内部消息将会一 同显示在用户面前。POST的所有操作对用户来说都是不可见的。</code>
로그인 후 복사

在FORM提交的时候,如果不指定Method,则默认为 GET请求(.net默认是POST),Form中提交的数据将会附加在url之后,以?分开与url分开。字母数字字符原样发送,但空格转换为“+” 号,其它符号转换为%XX,其中XX为该符号以16进制表示的ASCII(或ISO Latin-1)值。GET请求请提交的数据放置在HTTP请求协议头中,而POST提交的数据则放在实体数据中;GET方式提交的数据最多只能有2048字节,而POST则没有此限制。POST传递的参数在doc里,也就http协议所传递的文本,接受时再解析参数部分。获得参数。一般用POST比较好。POST提交数据是隐式的,GET是通过在url里面传递的,用来传递一些不需要保密的数据,GET是通过在URL里传递参数,POST不是。

1.GET请求的数据会附在URL之后(就是把数据放置在HTTP协议头中),以?分割URL和传输数据,参数之间以&相连

2.GET方式提交的数据最多只能是1024字节,理论上POST没有限制,可传较大量的数据,IIS4中最大为80KB,IIS5中为100KB

HTTP状态码

cookie和session区别

cookie的内容主要包括:名字,值,过期时间,路径和域。路径与域一起构成cookie的作用范围。若不设置过期时间,则表示这
个cookie的生命期为浏览器会话期间,关闭浏览器窗口,cookie就消失。这种生命期为浏览器会话期的cookie被称为会话cookie。
会话cookie一般不存储在硬盘上而是保存在内存里,当然这种行为并不是规范规定的。若设置了过期时间,浏览器就会把cookie
保存到硬盘上,关闭后再次打开浏览器,这些cookie仍然有效直到超过设定的过期时间。

当程序需要为某个客户端的请求创建一个session时,服务器首先检查这个客户端的请求里是否已包含了一个session标识
(称为session id),如果已包含则说明以前已经为此客户端创建过session,服务器就按照session id把这个session检索出来
使用(检索不到,会新建一个),如果客户端请求不包含session id,则为此客户端创建一个session并且生成一个与此session相
关联的session id,session id的值应该是一个既不会重复,又不容易被找到规律以仿造的字符串,这个session id将被在本次响应
中返回给客户端保存。保存这个session id的方式可以采用cookie,这样在交互过程中浏览器可以自动的按照规则把这个标识发送给
服务器。
1、cookie数据存放在客户的浏览器上,session数据放在服务器上。
2、cookie不是很安全,别人可以分析存放在本地的COOKIE并进行COOKIE欺骗
考虑到安全应当使用session。
3、session会在一定时间内保存在服务器上。当访问增多,会比较占用你服务器的性能
考虑到减轻服务器性能方面,应当使用COOKIE。
4、单个cookie保存的数据不能超过4K,很多浏览器都限制一个站点最多保存20个cookie。
5、所以个人建议:
将登陆信息等重要信息存放为SESSION
其他信息如果需要保留,可以放在COOKIE中

php代码规范

1.变量赋值必须保持相等间距和排列

2.每行结尾不允许有多余的空格

3.确保文件的命名和调用大小写一致,是由于类Unix系统上面,对大小写是敏感的

4.方法名只允许由字母组成,下划线是不允许的,首字母要小写,其后每个单词首字母要大写

5.属性的命名只允许由字母组成,下划线是不允许的⋯⋯

6.对于对象成员的访问,我们必须始终使用“get"和"set"方法

7.当类成员方法被声明为private时,必须以双下划线"__"开头;被声明为protected时,必须以单下划线"_"开头;声明为public的成员属性则在任何时候都不允许含有下划线。

8.如果我们需要把一些经常使用的方法定义为全局函数,那么应该把它们以静态(static)的形式定义在类中

9.函数的命名使用小写和下划线,应该能够描述清楚该函数的功能。

10.Boolean值和null值都采用小写。

11.当一个字符串是纯文本组成的时候(即不含有变量),则必须总是以单引号(')作为定界符

12.使用array类型声明关联数组的时候,应将它分成多行,保证每行的键与值的对齐

13. Der gesamte Code in der Klasse muss mit vier Leerzeichen eingerückt werden

14. Variablen dürfen nicht mit var deklariert werden und Klassenmitgliedsvariablen müssen mit private, protected und public deklariert werden. Normalerweise werden Get- und Set-Methoden verwendet, um auf Klassenmitglieder zuzugreifen.

15. Methoden müssen immer privat, geschützt oder öffentlich sein, um ihren Gültigkeitsbereich zu deklarieren

16. Zwischen Funktions- oder Methodennamen und Parameterklammern sind keine zusätzlichen Leerzeichen zulässig

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 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 옷 제거제

Video Face Swap

Video Face Swap

완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

<gum> : Bubble Gum Simulator Infinity- 로얄 키를 얻고 사용하는 방법
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
Nordhold : Fusion System, 설명
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
Mandragora : 마녀 트리의 속삭임 - Grappling Hook 잠금 해제 방법
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

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

SublimeText3 중국어 버전

SublimeText3 중국어 버전

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

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

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

PHP 및 Python : 두 가지 인기있는 프로그래밍 언어를 비교합니다 PHP 및 Python : 두 가지 인기있는 프로그래밍 언어를 비교합니다 Apr 14, 2025 am 12:13 AM

PHP와 Python은 각각 고유 한 장점이 있으며 프로젝트 요구 사항에 따라 선택합니다. 1.PHP는 웹 개발, 특히 웹 사이트의 빠른 개발 및 유지 보수에 적합합니다. 2. Python은 간결한 구문을 가진 데이터 과학, 기계 학습 및 인공 지능에 적합하며 초보자에게 적합합니다.

PHP 실행 : 실제 예제 및 응용 프로그램 PHP 실행 : 실제 예제 및 응용 프로그램 Apr 14, 2025 am 12:19 AM

PHP는 전자 상거래, 컨텐츠 관리 시스템 및 API 개발에 널리 사용됩니다. 1) 전자 상거래 : 쇼핑 카트 기능 및 지불 처리에 사용됩니다. 2) 컨텐츠 관리 시스템 : 동적 컨텐츠 생성 및 사용자 관리에 사용됩니다. 3) API 개발 : 편안한 API 개발 및 API 보안에 사용됩니다. 성능 최적화 및 모범 사례를 통해 PHP 애플리케이션의 효율성과 유지 보수 성이 향상됩니다.

PHP : 웹 개발의 핵심 언어 PHP : 웹 개발의 핵심 언어 Apr 13, 2025 am 12:08 AM

PHP는 서버 측에서 널리 사용되는 스크립팅 언어이며 특히 웹 개발에 적합합니다. 1.PHP는 HTML을 포함하고 HTTP 요청 및 응답을 처리 할 수 ​​있으며 다양한 데이터베이스를 지원할 수 있습니다. 2.PHP는 강력한 커뮤니티 지원 및 오픈 소스 리소스를 통해 동적 웹 컨텐츠, 프로세스 양식 데이터, 액세스 데이터베이스 등을 생성하는 데 사용됩니다. 3. PHP는 해석 된 언어이며, 실행 프로세스에는 어휘 분석, 문법 분석, 편집 및 실행이 포함됩니다. 4. PHP는 사용자 등록 시스템과 같은 고급 응용 프로그램을 위해 MySQL과 결합 할 수 있습니다. 5. PHP를 디버깅 할 때 error_reporting () 및 var_dump ()와 같은 함수를 사용할 수 있습니다. 6. 캐싱 메커니즘을 사용하여 PHP 코드를 최적화하고 데이터베이스 쿼리를 최적화하며 내장 기능을 사용하십시오. 7

PHP vs. Python : 차이점 이해 PHP vs. Python : 차이점 이해 Apr 11, 2025 am 12:15 AM

PHP와 Python은 각각 고유 한 장점이 있으며 선택은 프로젝트 요구 사항을 기반으로해야합니다. 1.PHP는 간단한 구문과 높은 실행 효율로 웹 개발에 적합합니다. 2. Python은 간결한 구문 및 풍부한 라이브러리를 갖춘 데이터 과학 및 기계 학습에 적합합니다.

PHP의 지속적인 관련성 : 여전히 살아 있습니까? PHP의 지속적인 관련성 : 여전히 살아 있습니까? Apr 14, 2025 am 12:12 AM

PHP는 여전히 역동적이며 현대 프로그래밍 분야에서 여전히 중요한 위치를 차지하고 있습니다. 1) PHP의 단순성과 강력한 커뮤니티 지원으로 인해 웹 개발에 널리 사용됩니다. 2) 유연성과 안정성은 웹 양식, 데이터베이스 작업 및 파일 처리를 처리하는 데 탁월합니다. 3) PHP는 지속적으로 발전하고 최적화하며 초보자 및 숙련 된 개발자에게 적합합니다.

PHP 대 기타 언어 : 비교 PHP 대 기타 언어 : 비교 Apr 13, 2025 am 12:19 AM

PHP는 특히 빠른 개발 및 동적 컨텐츠를 처리하는 데 웹 개발에 적합하지만 데이터 과학 및 엔터프라이즈 수준의 애플리케이션에는 적합하지 않습니다. Python과 비교할 때 PHP는 웹 개발에 더 많은 장점이 있지만 데이터 과학 분야에서는 Python만큼 좋지 않습니다. Java와 비교할 때 PHP는 엔터프라이즈 레벨 애플리케이션에서 더 나빠지지만 웹 개발에서는 더 유연합니다. JavaScript와 비교할 때 PHP는 백엔드 개발에서 더 간결하지만 프론트 엔드 개발에서는 JavaScript만큼 좋지 않습니다.

PHP 및 Python : 코드 예제 및 비교 PHP 및 Python : 코드 예제 및 비교 Apr 15, 2025 am 12:07 AM

PHP와 Python은 고유 한 장점과 단점이 있으며 선택은 프로젝트 요구와 개인 선호도에 달려 있습니다. 1.PHP는 대규모 웹 애플리케이션의 빠른 개발 및 유지 보수에 적합합니다. 2. Python은 데이터 과학 및 기계 학습 분야를 지배합니다.

PHP와 Python : 다른 패러다임이 설명되었습니다 PHP와 Python : 다른 패러다임이 설명되었습니다 Apr 18, 2025 am 12:26 AM

PHP는 주로 절차 적 프로그래밍이지만 객체 지향 프로그래밍 (OOP)도 지원합니다. Python은 OOP, 기능 및 절차 프로그래밍을 포함한 다양한 패러다임을 지원합니다. PHP는 웹 개발에 적합하며 Python은 데이터 분석 및 기계 학습과 같은 다양한 응용 프로그램에 적합합니다.

See all articles