PHP基础

1.PHP 语法
①PHP文件的默认文件扩展名是 “.php”,其 脚本以 <?php 开始,以 ?> 结束,可以放在文档中的任何位置;
②PHP 中的每个代码行都必须以分号结束:分号是一种分隔符,用于把指令集区分开来;
③通过 PHP,有两种在浏览器输出文本的基础指令:echo 和 print;
④注释:⑴//……⑵/……/⑶*……
2.PHP 变量
①PHP 变量规则:
⑴以 $ 符号开始,后面跟着变量的名称
⑵变量名必须以字母或者下划线字符开始
⑶变量名只能包含字母数字字符以及下划线(A-z、0-9 和 _ )
⑷变量名不能包含空格
⑸变量名是区分大小写的($y$Y 是两个不同的变量),注:PHP 语句和 PHP 变量都是区分大小写的;
②PHP 是一门弱类型语言:不必向 PHP 声明该变量的数据类型,PHP 会根据变量的值,自动把变量转换为正确的数据类型;
③PHP 变量作用域:localglobalstaticparameter
⑴在所有函数外部定义的变量,拥有全局作用域,除了函数外,全局变量可以被脚本中的任何部分访问,要在一个函数中访问一个全局变量,需要使用 global 关键字;在 PHP 函数内部声明的变量是局部变量,仅能在函数内部访问
⑵global :函数内访问全局变量,在函数内调用函数外定义的全局变量,需要在函数中的变量前加上 global 关键字
注意:此处可用 $GLOBALS[index] 替换;
⑶当一个函数完成时,它的所有变量通常都会被删除。若希望某个局部变量不要被删除,则在在第一次声明变量时使用 static 关键字,然后,每次调用该函数时,该变量将会保留着函数前一次被调用时的值,但该变量仍然是函数的局部变量;
④字符串变量:
设有$a=1;则:
$a1='aaaaaa$a'; echo $a1; 结果:aaaaaa$a
$a2="aaaaaa$a"; echo $a2; 结果:aaaaaa1
⑤数组由键值对组成,其中其值可以为各种数据类型,如多(二)维数组:$a=[1,2,[1,2,3]];
⑴索引数组,如上方的二维数组,键的名称默认从0开始;
⑵关联数组:自行书写键的名称(‘xx’),并通过=>进行赋值
可见在字符串变量中,单引号内的字符串无法识别其内含变量,而双引号内的字符串则可以
3.PHP 5 echo 和 print 语句
echoprint 区别:
echo - 可以输出一个或多个字符串
print - 只允许输出一个字符串,返回值总为 1
提示:echo 输出的速度比 print 快, echo 没有返回值,print有返回值1。
②二者都属于语言结构,可以使用括号,也可以不使用括号: echo 或 echo()、print 或 print()。
③在输出数组时注意花括弧可加可不加,如echo "我车的品牌是 {$arr[0]}";
4.PHP EOF(heredoc) 使用说明:一种在命令行shell(如sh、csh、ksh、bash、PowerShell和zsh)和程序语言(像Perl、PHP、Python和Ruby)里定义一个字串的方法。?????????????
①使用概述:
⑴ 必须后接分号,否则编译通不过。
⑵ EOF 可以用任意其它字符代替,只需保证结束标识与开始标识一致。
⑶ 结束标识必须顶格独自占一行(即必须从行首开始,前后不能衔接任何空白和字符)。
⑷ 开始标识可以不带引号或带单双引号,不带引号与带双引号效果一致,解释内嵌的变量和转义符号,带单引号则不解释内嵌的变量和转义符号。
⑸ 当内容需要内嵌引号(单引号或双引号)时,不需要加转义符,本身对单双引号转义,此处相当与q和qq的用法。
②注意:
⑴以 <<<EOF 开始标记开始,以 EOF 结束标记结束,结束标记必须顶头写,不能有缩进和空格,且在结束标记末尾要有分号 。
⑵开始标记和结束标记相同,比如常用大写的 EOTEODEOF 来表示,但是不只限于那几个(也可以用:JSONHTML等),只要保证开始标记和结束标记不在正文中出现即可。
⑶位于开始标记和结束标记之间的变量可以被正常解析,但是函数则不可以。在 heredoc 中,变量不需要用连接符 ., 来拼接
5.PHP 5 数据类型:String(字符串), Integer(整型), Float(浮点型), Boolean(布尔型), Array(数组), Object(对象), NULL(空值)。
注:可用var_dump() 函数来考察数据类型
6.常量:由英文字母、下划线、和数字组成,但数字不能作为首字母出现。 (常量名不需要加 $ 修饰符)。
①设置常量define()

// 区分大小写的常量名
<?php
define("GREETING", "欢迎访问 Runoob.com");
echo GREETING;    // 输出 "欢迎访问 Runoob.com"
echo '<br>';
echo greeting;   // 输出 "greeting"
?>
// 不区分大小写的常量, 常量值为 "欢迎访问 Runoob.com":
<?php
// 不区分大小写的常量名
define("GREETING", "欢迎访问 Runoob.com", true);
echo greeting;  // 输出 "欢迎访问 Runoob.com"
?>

②常量在定义后,默认是全局变量,可以在整个运行的脚本的任何地方使用。
7.字符串变量
①并置运算符:在 PHP 中,只有一个字符串运算符——并置运算符 (.) 用于把两个字符串值连接起来。
如echo $txt1 . $txt2;
②strlen() 函数:返回字符串的长度(字符数);
③strpos() 函数用于在字符串内查找一个字符或一段指定的文本:如果在字符串中找到匹配,该函数会返回第一个匹配的字符位置。如果未找到匹配,则返回 FALSE。

<?php 
echo strpos("Hello world!","world"); //输出6,从0开始计数
?>

more…
8.运算符
注意三元运算符、组合比较符(PHP7+)以及·运算符优先级
9.If…Else 语句&Switch 语句:注意if…elseif…else 语句的使用
10.数组
①count() 函数用于返回数组的长度(元素的数量);
②关联数组:使用您分配给数组的指定的键的数组。
这里有两种创建关联数组的方法:
$age=array("Peter"=>"35","Ben"=>"37","Joe"=>"43");

$age['Peter']="35";
$age['Ben']="37";
$age['Joe']="43";

随后可以在脚本中使用指定的键:

<?php
$age=array("Peter"=>"35","Ben"=>"37","Joe"=>"43");
echo "Peter is " . $age['Peter'] . " years old.";
?>

注意:在这里的$age['Peter']不能替换成为$age[0]
③遍历关联数组:foreach 循环
⑴ foreach (array_expression as $value):只取值;
⑵  foreach (array_expression as $key => $value):取值和键名;
more…
11.数组排序
①sort() - 对数组进行升序排列
②rsort() - 对数组进行降序排列
③asort() - 根据关联数组的值,对数组进行升序排列
④ksort() - 根据关联数组的键,对数组进行升序排列
⑤arsort() - 根据关联数组的值,对数组进行降序排列
⑥krsort() - 根据关联数组的键,对数组进行降序排列
more…
12.超级全局变量
13.魔术常量
注意Trait方法的使用!
14.命名空间(namespace):将全局的非命名空间中的代码与命名空间中的代码组合在一起,只能使用大括号形式的语法。全局代码必须用一个不带名称的 namespace 语句加上大括号括起来,并且在声明命名空间之前唯一合法的代码是用于定义源文件编码方式的 declare 语句。所有非 PHP 代码包括空白符都不能出现在命名空间的声明之前:
①子命名空间:PHP 命名空间也允许指定层次化的命名空间的名称。因此,命名空间的名字可以使用分层次的方式定义,如namespace MyProject\Sub\Level; //声明分层次的单个命名空间
②命名空间使用:
⑴非限定名称,或不包含前缀的类名称
⑵限定名称,或包含前缀的名称
⑶完全限定名称,或包含了全局前缀操作符的名称
③????????????
④??????
⑤?????????????????????????????????????????????????
15.面向对象
①继承:PHP 使用关键字 extends 来继承一个类,PHP 不支持多继承;
②方法重写:如果从父类继承的方法不能满足子类的需求,可以对其进行改写,这个过程叫方法的覆盖(override),也称为方法的重写;
③访问控制:PHP 对属性或方法的访问控制,是通过在前面添加关键字 public(公有),protected(受保护)或 private(私有)来实现的;
④接口:
⑴使用接口(interface),可以指定某个类必须实现哪些方法,但不需要定义这些方法的具体内容;
⑵接口是通过 interface 关键字来定义的,就像定义一个标准的类一样,但其中定义所有的方法都是空的;
⑶接口中定义的所有方法都必须是公有,这是接口的特性;
⑷要实现一个接口,使用 implements 操作符。类中必须实现接口中定义的所有方法,否则会报一个致命错误。类可以实现多个接口,用逗号来分隔多个接口的名称;
⑤抽象类(abstract):任何一个类,如果它里面至少有一个方法是被声明为抽象的,那么这个类就必须被声明为抽象的。
⑴定义为抽象的类不能被实例化,被定义为抽象的方法只是声明了其调用方式(参数),不能定义其具体的功能实现;
⑵继承一个抽象类的时候,子类必须定义父类中的所有抽象方法;另外,这些方法的访问控制必须和父类中一样(或者更为宽松)。例如某个抽象方法被声明为受保护的,那么子类中实现的方法就应该声明为受保护的或者公有的,而不能定义为私有的。此外,子类方法可以包含父类抽象方法中不存在的可选参数。
Static 关键字:
⑴声明类属性或方法为 static(静态),就可以不实例化类而直接访问。
⑵静态属性不能通过一个类已实例化的对象来访问(但静态方法可以)。
⑶由于静态方法不需要通过对象即可调用,所以伪变量 KaTeX parse error: Expected group after '_' at position 180: …方法中调用 `parent::_̲_construct()` 。…this代替 ⑨魔术方法 16.数据接收发送的方法 ⑴form ⑵pos get:①区分其异同;②二者传递的都是数组 P O S T ‘ ‘ _POST` ` POST_GET`,其中的键名为name

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值