php学习笔记之基础知识
编辑:jimmy
日期: 2025/2/8 浏览:1 次
php学习至今一年有余,笔记积累挺多的,也挺杂的,写篇文章整理一下吧。
php基础部分
![php学习笔记之基础知识](/UploadFiles/2021-04-02/2014110815553018.jpg)
PHP
输出文本的基础指令:echo
和 print
。
echo和print的区别
echo
是PHP语句, print
和print_r
是函数,语句没有返回值,函数可以有返回值(即便没有用)
echo
输出一个或者多个字符串。
print
只能打印出简单类型变量的值(如int,string)
print_r
可以打印出复杂类型变量的值(如数组,对象)
var_dump和print_r的区别
var_dump
返回表达式的类型和值,而print_r
仅返回结果,相比调试代码使用var_dump
更便于阅读。
变量
变量用于存储值,比如数字、文本字符串或数组。PHP 中的所有变量都是以 $ 符号开始的。
PHP 变量名称对大小写敏感!
PHP 有三种不同的变量作用域:
local(局部)
global(全局)
static(静态)
函数之外声明的变量拥有 Global
作用域,只能在函数以外进行访问。
函数内部声明的变量拥有 LOCAL
作用域,只能在函数内部进行访问。
global
关键词用于访问函数内的全局变量。
PHP static 关键词
通常,当函数完成/执行后,会删除所有变量。不过,有时我需要不删除某个局部变量。实现这一点需要更进一步的工作。
要完成这一点,请在您首次声明变量时使用 static 关键词:
<"<br>";
myTest();//-2
echo "<br>";
myTest();//-3
"//img.jbzj.com/file_images/article/201411/2014110815553019.jpg" alt="" />
布尔型
要指定一个布尔值,使用关键字 TRUE 或 FALSE。两个都是大小写不敏感的。
整型
我们可以使用(int)来将小数强制类型转换成整数。
<"zhangsan"]
多维数组 - 包含一个或多个数组的数组
下标要嘛是整数,要么是字符串。
<"foo" => "bar",
"bar" => "foo",
);
// 自 PHP 5.4 起
$array = [
"foo" => "bar",
"bar" => "foo",
];
"新宋体">array[key]
语法来访问。
Note: 这并不意味着总是给键名加上引号。用不着给键名为常量或变量的加上引号,否则会使 PHP
不能解析它们。
数组运算符
|
例子
|
名称
|
结果$a + $b 联合 $a 和 $b 的联合$a == $b 相等 如果 $a 和 $b 具有相同的键/值对则为 TRUE$a === $b 全等 如果 $a 和 $b 具有相同的键/值对并且顺序和类型都相同则为 TRUE$a != $b 不等 如果 $a 不等于 $b 则为 TRUE$a <> $b 不等 如果 $a 不等于 $b 则为 TRUE$a !== $b 不全等 如果 $a 不全等于 $b 则为 TRUE
+
运算符把右边的数组元素附加到左边的数组后面,两个数组中都有的键名,则只用左边数组中的,右边的被忽略。
对象
要初始化一个对象,用 new 语句将对象实例到一个变量中。
常用函数
strlen() 函数用于计算字符串的长度。
strpos() 函数用于在字符串内检索一段字符串或一个字符。
常量
可以用 define() 函数来定义常量。一个常量一旦被定义,就不能再改变或者取消定义。
常用的魔术常量:
![php学习笔记之基础知识](/UploadFiles/2021-04-02/2014110815553120.jpg)
定义常量例子:
<"poems" , "Homeric epic");
echo poems ;//outputs "Homeric epic"
"新宋体">(.)
用于把两个字符串值连接起来。如:echo "a= ".$a."<br>";
左边将字符串文字"a="与变量$a的值连接,第二处是与换行符"<br>"
连接
php函数
函数只有在被调用时才会被执行,这点和js是一样的,同样,函数定义也是以function关键字开头的。
<"-2+10= ".sum(-2,10);//outputs "-2+10=8"
"新宋体">return
语句时,以上将会变成"-2+10=";
流程控制
在这里,只讲下foreach
语句。
foreach
语句遍历输出数组:
语法:
foreach (array_expression as $value){ statement};
foreach (array_expression as $key => $value){ statement};
<"Marry";
$actors [1] ="Lorry";
$actors [2] = "mike";
foreach ($actors as $values){
echo "Name:$values<br>";
}
"新宋体">$this->property
(其中 property 是该属性名)这种方式来访问非静态属性。
静态属性则是用 ::
(双冒号):self::$property
来访问。
=>和->
=>
数组成员访问符号,->
对象成员访问符号;
$this
->$name=$value
:将当前类的name
变量的值设为$value
;
$this
代表了类本身,->
是访问其类成员的操作符
双冒号运算符(::
)类名::
静态属性/方法
“::
”用来调用类中静态的属性和方法
include()
:包含外部文件,语法格式为 include(string filename);
require()
:会输出错误信息,终止脚本
include_once()
:多次调用相同文件时,程序只会调用一次
require_once()
:先检查文件是否在其他地方被调用过
array_pop()
:获取并返回数组中的最后一个元素
count()
:统计数组中的元素个数
array_search()
:获取数组中元素的键名
$array_keys()
:获取数组中重复元素的所有键名
单引号和双引号
PHP把单引号中的数据视为普通字符串,不再处理。而双引号还要对其中的字符串进行处理
get和post
$_GET[ ]和$_POST[ ]全局数组:分别用来接收GET和POST方法传递到当前页面的数据。“[ ]”里面是name.
php参数传递常用的方法有3种:$_POST[ ]、$_GET[ ]、$_SESSION[ ],分别用于获取表单、URL与Session变量的值。
表单提交中get和post方式的区别归纳如下几点:
GET是从服务器上获取数据,POST是向服务器传送数据。
GET 是把参数数据队列加到提交表单的ACTION属性所指的URL中,值和表单内各个字段一一对应,在URL中可以看到。POST是通过HTTP POST机制,将表单内各个字段与其内容放置在HTML HEADER内一起传送到ACTION属性所指的URL地址。用户看不到这个过程。
对于GET方式,服务器端用Request.QueryString获取变量的值,对于POST方式,服务器端用Request.Form获取提交的数据。
GET传送的数据量较小,不能大于2KB(这主要是因为受URL长度限制)。POST传送的数据量较大,一般被默认为不受限制。但理论上,限制取决于服务器的处理能力。
GET 安全性较低,POST安全性较高。因为GET在传输过程,数据被放在请求的URL中,而如今现有的很多服务器、代理服务器或者用户代理都会将请求URL记 录到日志文件中,然后放在某个地方,这样就可能会有一些隐私的信息被第三方看到。另外,用户也可以在浏览器上直接看到提交的数据,一些系统内部消息将会一 同显示在用户面前。POST的所有操作对用户来说都是不可见的。