Php 笔记
-
php基本简介
-
为何要学习php
通过上网查资料,了解了基本的php知识,并知道了php的优缺点。php是一种通用开源脚本语言。语法吸收了C语言、Java和Perl的特点,利于学习,使用广泛,主要适用于Web开发领域。php 独特的语法混合了C、Java、Perl以及php自创的语法。它可以比CGI或者Perl更快速地执行动态网页。用php做出的动态页面与其他的编程语言相比,php是将程序嵌入到HTML(标准通用标记语言下的一个应用)文档中去执行,执行效率比完全生成html标记的CGI要高许多;php还可以执行编译后代码,编译可以达到加密和优化代码运行,使代码运行更快。
php和html,配置php环境
-
- php语法支持html语法,可以在php的代码之中完美的嵌套标签语言。PHP是将程序嵌入到HTML文档中去执行,执行效率比完全生成htmL标记的CGI要高许多。
- 跟着网上教程学会了php环境的配置,并成功运行第一个php文件。
-
基础php:
echo,print,strings,arithmetic,variables,semicolons,comments - 了解echo和print的区别:echo可以输出多个值,每个值之间用逗号隔开,而print只能输出一个值。
- 在输出string类型时,echo和print均可,多个字符串连接在一起时可用英式点即”.”相连。
- arithmetic即在输出时支持算术运算,比如echo 2 * 3;,即将输出6。
- variables,php的变量没有类型而言,换句话说即时自动匹配类型,定义方式类似$name = “wsy”;,即每个变量名之前只需要加一个$符号,剩下为自己定义的名字即可。变量在被初次赋值后才被定义,所以不需要$name;如此定义变量。
- 每条php语句都需要以分号结尾,这点与C/C++一样
- comments,注释也与C/C++的注释一样,可是使用//,也可以使用/**/。
-
php条件控制
-
比较符号
php的比较符号类似C/C++,也分为大于(>),小于(=),小于等于(
-
if和else和elseif
php中的if语句与C/C++很类似,也在()内添加条件,同时也支持这样if(1)或者if(true)的简化写法。
-
switch,endswitch
php中也存在switch,写法还是与C/C++一样,
switch ($a) { case 1: echo 1; break; default: echo 2;}
로그인 후 복사相比于普通的写法,php还提供了另外一种的写法,这种写法省去了花括号。
switch ($a) : case 1: echo 1; break; default: echo 2;endswitch;
로그인 후 복사
-
php数组
数组的定义
因为php对于变量是自动匹配类型,则php的数组对于不同类型的变量也是一视同仁,即php的数组可以添加任何类型的变量在一个数组当中。
$a = array(“Tom”, “Jim”, 1, 2);
如此定义了一个名为a的数组,含有4个元素,2个string类型,2个数字类型。数组元素的获取,[],{}
通过数组下标(同C/C++也是从0开始)来访问数组的元素有2种方法,一个是用[],另一个是用{}。这2个方法是一样的,不管用哪种方法都可以访问数组元素。
echo $a[2]; //输出1echo $a{1}; //输出Jim
로그인 후 복사数组元素的修改
php支持对数组元素的修改,修改方法即通过[]或者{}访问对应的数组元素,然后将其赋予新的值即可。
$a[1] = “TTT”;echo $a{1}; //输出TTT,因为已经修改了。
로그인 후 복사数组元素的删除
php支持对数组中某个元素的删除或对整个数组的删除的功能。通过unset();即可删除对应的元素。
unset($a[1]); //删除了数组中的第二个元素,现在数组包含Tom,1,2unset($a); //删除了整个数组
로그인 후 복사
php循环
**`for`循环**
로그인 후 복사php中的for循环与C/C++相似,支持++操作符,但不支持+=,所以对于不是+1的循环,需要写成$i = $i + 3;
for ($i = 0; $i <= 100; $i = $i + 10) { //……}
로그인 후 복사**`foreach`循环**
로그인 후 복사当需要循环整个数组时,写for循环可能会过于繁琐,所以php提供了一种特殊的循环方法,即foreach循环。写法如下:
$a = array(“Tom”, “Jim”, 1, 2, 3);foreach ($a as $i) { echo $i;}
로그인 후 복사
这样就可以将php数组中的所有元素都输出了。
foreach (数组名 as 变量名),接下来对于数组中每个元素操作即对用户自己取变量名的变量操作即可,但不支持修改功能,类似与C/C++中的传值与传址的区别。**`while`循环,`endwhile`**
로그인 후 복사php中的while循环有2种写法,普通的写法是都所知道的。
while () { //……}
로그인 후 복사类似于之前的switch,php中也有另外一种写法。
while (): //……endwhile;
로그인 후 복사同if/else一样,while同时也支持这样while(1)或者while(true)的简化写法。
**`do-while`循环**
로그인 후 복사php中的do-while循环与C/C++一样。
do { //……} while ();
로그인 후 복사do-while也支持这样do-while(1)或者do-while(true)的简化写法。
**循环嵌套**
로그인 후 복사php中支持各种循环的相互嵌套。
php函数(1)
关于字符串的相关函数
strlen(string)substr(string, start, length)strtoupper(string)strtolower(string)strpos(string, string)
로그인 후 복사strlen(string):此函数用于求传入形参字符串string 的长度,返回数字类型即字符串的长度。
substr(string, start, length):此函数用于求字符串string的某个子串。第一个形参为原字符串string。第二个形参start为子串在string中的开始位置,为数字类型变量。第三个形参length为子串的长度。此函数根据传入的形参,返回字符串类型的子串。
strtoupper(string):此函数用于将字符串string全部转换为大写。返回大写的string。
strtolower(string):此函数用于将字符串string全部转换为小写。返回小写的string。
strpos(string, string):此函数用于求在第一个string中第一次出现第二个string的首位置,若从未出现返回false。strpos("emily", "e"); // 0strpos("emily", "ily"); // 2strpos("emily", "zxc"); // false
로그인 후 복사**关于数学的相关函数**
로그인 후 복사round(number(, n))rand(min, max)
로그인 후 복사round函数用于对浮点数保留小数。
round(number):这样写,默认对number保留为整数。
round(number, n):这样写,对number保留n位小数。
rand(min, max):此函数用于求给定范围[min, max]中的随机数。**关于数组的相关函数**
로그인 후 복사array_push(array, number/string)count(array)sort(array)rsort(array)join(string,array)
로그인 후 복사array_push(array, number/string):此函数用于对数组array尾端增加一个元素,可以为任意类型。
count(array):此函数用于求数组array中元素的个数。
sort(array):此函数用于将数组array中的元素按字典序从小到大排列。
rsort(array):此函数用于将数组array中的元素按字典序从大到小排列。
join(string, array):此函数用于将数组中的元素用string连接起来,并返回连接后的结果。$array = array(5, 3, 7 ,1);rsort($array);print join(":", $array);//输出 7:5:3:1
로그인 후 복사
**php函数(2)**
로그인 후 복사**自定义函数**
로그인 후 복사php中允许用户定义自己所需的不同的函数,但不需要写函数类型。
function Template() { //……}
로그인 후 복사function 代表定义的是一个函数,Template为函数名,用户可以随意定义,不需要考虑函数的类型。
**带形参的自定义函数**
로그인 후 복사在函数定义时,()之中可以为空,也可以添加形参,即称为带有形参的函数。
function aboutMe($name, $age) { echo "Hello! My name is " . $name . ", and I am " . $age . " years old.";}
로그인 후 복사此函数定义了两个形参,分别为$name和$age。调用时,aboutMe("wsy", 22);即可,也可以传入其他变量名。
**自定义函数的返回值**
로그인 후 복사php的函数虽然没有函数类型,但是可以返回任意类型的值。
function returnName() { return "wsy";}
로그인 후 복사return后可以跟变量也可直接跟常量。
**php对象(1)**
로그인 후 복사**类的定义、对象的定义**
로그인 후 복사同C++中类的定义相同,php的类定义如下。
class Dog { public $name; public $numLegs = 4; //可以定义公有成员,可以对其赋值也可以对其不赋值 //……}
로그인 후 복사建立一个类的对象。
$dog = new Dog();
调用公有成员。echo $dog->numLegs;//name因为未赋值,若要输出name的话,则不会输出任何东西。
로그인 후 복사**构造器的定义及调用**
로그인 후 복사在类可以用__construct()来定义构造器。
class Dog { public $name; public $numLegs = 4; public function __construct($name) { //构造器可以带形参也可以不带形参 $this->name = $name; //若要对类内成员赋值,需用$this->成员名 的形式赋值。 } //……}
로그인 후 복사构造器在定义对象时自动被调用。
$dog = new Dog(“Tom”);echo $dog->name;//输出Tom。
로그인 후 복사**方法的定义及调用**在类内可以自定义方法。
로그인 후 복사class Dog { public $name; public $numLegs = 4; public function __construct($name) { $this->name = $name; } public function greet() { //方法可以带形参也可以不带 return “Hello, my name is ” . $name . “.”; //方法可以有返回值也可以没有 } //……}
로그인 후 복사方法的调用类似公有成员的调用,()不可省略。
$dog = new Dog(“Tom”);echo $dog->greet();//输出Hello, my name is Tom.
로그인 후 복사
**php对象(2)**
로그인 후 복사**类的继承**
로그인 후 복사php支持类的继承。
class Shape {public $hasSides = true;}class Square extends Shape { //Square类继承了Shape类}
로그인 후 복사通过property_exists()函数可以查看某个类是否包含某个方法或者私有成员。
$square = new Square();if (property_exists($square, "hasSides")) { echo "I have sides!";}//有输出,输出I have sides!
로그인 후 복사php的类继承与C++中的类继承一样,子类会继承父类的所以公有成员和方法。
**重写父类方法,`final`**
로그인 후 복사php支持在子类中重写父类中的方法,并且在调用时调用的为子类重写后的方法。
class Vehicle { public function honk() { return "HONK HONK!"; }}class Bicycle extends Vehicle { public function honk() { //父类方法的重写 return "Beep beep!"; }}
로그인 후 복사调用子类方法
$bicycle = new Bicycle();echo $bicycle->honk();//将输出Beep beep!
로그인 후 복사若想要在子类重写后,仍调用的为父类继承来的方法。只需在父类方法前增加final关键字。若将上面父类Vehicle中的honk方法改为如下形式,其他保持不变。
final public function honk() { //……}
로그인 후 복사最终程序将输出HONK HONK!。
**`const`和`::`**
로그인 후 복사php类中支持const常量,即定义时就需要赋值,一旦赋值后不允许修改。
class Cat { const numLegs = 4; //不需要添加$符号}
로그인 후 복사对于const常量的访问,不能与之前公有成员的访问方法一样,而应该用::来访问。因为常量是针对每个类而言,所以应采取如下形式访问。
echo Cat::numLegs;//输出4
로그인 후 복사**`static`**
로그인 후 복사php类支持静态方法和静态变量,允许用户在不创建对象而可以访问成员和方法。
class Person { public static $isAlive = "Yep!" public static function greet() { echo "Hello there!"; }}
로그인 후 복사调用时,采取如下形式访问。
echo Person::$isAlive;//输出Yep!Person::greet();//输出Hello there!
로그인 후 복사

핫 AI 도구

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

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

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

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

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

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

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

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

PHP에서 Password_hash 및 Password_Verify 기능을 사용하여 보안 비밀번호 해싱을 구현해야하며 MD5 또는 SHA1을 사용해서는 안됩니다. 1) Password_hash는 보안을 향상시키기 위해 소금 값이 포함 된 해시를 생성합니다. 2) Password_verify 암호를 확인하고 해시 값을 비교하여 보안을 보장합니다. 3) MD5 및 SHA1은 취약하고 소금 값이 부족하며 현대 암호 보안에는 적합하지 않습니다.

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

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

PHP 유형은 코드 품질과 가독성을 향상시키기위한 프롬프트입니다. 1) 스칼라 유형 팁 : PHP7.0이므로 int, float 등과 같은 기능 매개 변수에 기본 데이터 유형을 지정할 수 있습니다. 2) 반환 유형 프롬프트 : 기능 반환 값 유형의 일관성을 확인하십시오. 3) Union 유형 프롬프트 : PHP8.0이므로 기능 매개 변수 또는 반환 값에 여러 유형을 지정할 수 있습니다. 4) Nullable 유형 프롬프트 : NULL 값을 포함하고 널 값을 반환 할 수있는 기능을 포함 할 수 있습니다.

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

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

PHP에서 전처리 문과 PDO를 사용하면 SQL 주입 공격을 효과적으로 방지 할 수 있습니다. 1) PDO를 사용하여 데이터베이스에 연결하고 오류 모드를 설정하십시오. 2) 준비 방법을 통해 전처리 명세서를 작성하고 자리 표시자를 사용하여 데이터를 전달하고 방법을 실행하십시오. 3) 쿼리 결과를 처리하고 코드의 보안 및 성능을 보장합니다.

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