php学习笔记之基础知识

以下是今年陆陆续续从网上整理的,版权归原作者所以。

php基础部分

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 关键词用于访问函数内的全局变量。

数据类型

布尔型
要指定一个布尔值,使用关键字 TRUE 或 FALSE。两个都是大小写不敏感的。
整型
我们可以使用(int)来将小数强制类型转换成整数。

<?php
    var_dump((int)(26/3));//int(8)
?>

数组
php中有三种数组:
索引数组:就是下标是顺序整数作为作为索引(比如第几排第几列)$class[5]
关联数组:就是下标是字符串作为索引(比如名字)$class2["zhangsan"]
多维数组 - 包含一个或多个数组的数组
下标要嘛是整数,要么是字符串。

<?php
$array = array(
    "foo" => "bar",
    "bar" => "foo",
);
// 自 PHP 5.4 起
$array = [
    "foo" => "bar",
    "bar" => "foo",
];
?>

数组单元可以通过 array[key] 语法来访问,key表示键。
Note: 这并不意味着总是给键名加上引号。用不着给键名为常量或变量的加上引号,否则会使 PHP 不能解析它们。

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

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

定义常量例子:

<?php
define("poems" , "Homeric epic");
echo poems ;//outputs "Homeric epic" 
?>

php字符串运算符
在 PHP 中,只有一个字符串运算符。
并置运算符 (.) 用于把两个字符串值连接起来。如:echo "a= ".$a."
";
左边将字符串文字"a="与变量$a的值连接,第二处是与换行符"
"连接
php函数
函数只有在被调用时才会被执行,这点和js是一样的,同样,函数定义也是以function关键字开头的。

<?php
    function sum($x,$y){
        $z=$x + $y;
        return $z;
    }
    echo "-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};
参数array_expression是指定要遍历的数组,$value是数组的值

<?php
     $actors [0] ="Marry";
     $actors [1] ="Lorry";
     $actors [2] = "mike";
     foreach ($actors as $values){
     echo "Name:$values<br>"; 
}
?>

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

常用函数

引用文件

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是向服务器传送数据。

在FORM提交的时候,如果不指定Method,则默认为GET请求(.net默认是POST),Form中提交的数据将会附加在url之后,以?分开与url分开。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代码规范

尽量以PSR-4和PSR-2为准,请使用四个空格替代tab,使用空格缩进的开发者比使用Tab的薪水高很多

文章翻页

已有 11 条评论
  1. goyouhuima

    朋友 交换链接吗

    goyouhuima 回复
    1. 落叶大大
      @goyouhuima

      你的多少?

      落叶大大 回复
      1. godaddy
        @落叶大大

        站点名称:godaddy
        博客地址:http://www.goyouhuima.com/
        可以的话,请把贵站信息发我。
        联系邮箱:hlphyc@126.com

        godaddy 回复
  2. Waxxh

    第一本买的编程书就是PHP的,然而 笑尿.png

    Waxxh 回复
    1. 落叶大大
      @Waxxh

      滑稽.png 滑稽.png 然而什么

      落叶大大 回复
  3. 橘纸柚

    淡定收藏了 滑稽.png

    橘纸柚 回复
    1. 落叶大大
      @橘纸柚

      滑稽.png 滑稽.png 滑稽.png 你在学这个?

      落叶大大 回复
      1. 橘纸柚
        @落叶大大

        嗯啊,之前初一的时候自学了一下,然后沉迷于学习就忘光惹 滑稽.png

        橘纸柚 回复
        1. 落叶大大
          @橘纸柚

          惊讶.png 惊讶.png 惊讶.png 还有这种操作

          落叶大大 回复
          1. 橘纸柚
            @落叶大大

            那么学HTML有什么书推荐呢大大 你懂的.png

            橘纸柚 回复
            1. 落叶大大
              @橘纸柚

              W3C 酷.png

              落叶大大 回复

呵呵@2x.png哈哈@2x.png吐舌@2x.png太开心@2x.png笑眼@2x.png花心@2x.png小乖@2x.png乖@2x.png捂嘴笑@2x.png滑稽@2x.png你懂的@2x.png不高兴@2x.png怒@2x.png汗@2x.png黑线@2x.png泪@2x.png真棒@2x.png喷@2x.png惊哭@2x.png阴险@2x.png鄙视@2x.png酷@2x.png啊@2x.png狂汗@2x.pngwhat@2x.png疑问@2x.png酸爽@2x.png呀咩爹@2x.png委屈@2x.png惊讶@2x.png睡觉@2x.png笑尿@2x.png挖鼻@2x.png吐@2x.png犀利@2x.png小红脸@2x.png懒得理@2x.png勉强@2x.png爱心@2x.png心碎@2x.png玫瑰@2x.png礼物@2x.png彩虹@2x.png太阳@2x.png星星月亮@2x.png钱币@2x.png茶杯@2x.png蛋糕@2x.png大拇指@2x.png胜利@2x.pngOK@2x.png沙发@2x.png手纸@2x.png香蕉@2x.png便便@2x.png药丸@2x.png红领巾@2x.png蜡烛@2x.png音乐@2x.png灯泡@2x.png