PHP简易基础

PHP

PHP是一种通用开源服务端脚本语言,将程序嵌入到HTML文档中去执行,结果以纯 HTML 形式返回给浏览器

PHP能做什么:

生成动态页面内容
创建、打开、读取、写入文件
收集ajax数据
发送和接收cookie
添加、删除、修改您的数据库中的数据
限制用户访问您的网站上的一些页面
加密数据

安装

环境配置

安装 Web 服务器Apache
安装 PHP
安装MySQL数据库
对于初学者建议使用集成的服务器组件(如:WampServer),它已经包含了 PHP、Apache、Mysql 等服务,免去了开发人员将时间花费在繁琐的配置环境过程。

WampServer下载地址:http://www.wampserver.com/

创建端口

WampServer安装好运行,左键小图标--->apache--->httpd-vhost.conf
复制如下代码,往下写。(//只是注释,记得删掉)

listen 6666    //端口号
<VirtualHost *:6666>      //端口号
	ServerName localhost
	DocumentRoot D:\katsuki  //端口对应url(不可有中文路径、空格)
	<Directory  "D:\katsuki">    //端口对应url
		Options +Indexes +Includes +FollowSymLinks +MultiViews
		AllowOverride All
		Require all granted     
	</Directory>
</VirtualHost>

配置完成后,localhost:6666就到该文件目录下,有index.html就打开

语法

默认文件扩展名是 “.php”。
通常包含 HTML 标签和一些 PHP 脚本代码。

分界标示符

    <?php //开始 
    //...php代码
    ?> //结束

注释

与js一样,分单行和多行注释

单行注释://
多行注释:/**/

输出语句

echo
可以输出一个或多个字符串(字符串可以包含HTML标签),速度较快,一般用于向前端返回数据

<?php
    //输出一个字符
    echo "katsuki<br>";
    //输出多个字符
    echo "kasami", " katsuki", "desu";
?>

print_r
打印关于变量的信息,适用于数组、对象的打印,一般用于测试

var_dump
判断一个变量的类型与长度,并输出变量的数据类型和数值,一般用于测试

变量

命名规则

以 $ 符号开始,后面跟着变量的名称($称为标识符,不属于变量组成部分)
只能包含字母数字字符以及下划线(A-z、0-9 和 _ )
必须以字母或者下划线字符开始
不能包含空格
区分大小写

//PHP 没有声明变量的命令。
//变量在第一次赋值时被创建:
<?php
    $txt="katsuki";
    $x=18;
    $y=10.5;
?>

作用域

全局变量
在函数外部定义的变量,称为全局变量,全局变量可以在任意位置访问

在函数中访问全局变量

//$GLOBALS,为数组
//格式:$GLOBALS[变量名],其中变量名不带$。
<?php
    function katsuki(){
        //在函数中创建全局变量
        $GLOBALS['x'] = 10;
        $GLOBALS['y'] = 8;
        $GLOBALS['y'] = $GLOBALS['x'] + $GLOBALS['y'];
    } 
    katsuki();
    echo $y; //输出18
?>

global 关键字

<?php
        $x=8;
        $y=10;
        function katsuki(){
            global $x,$y;
            $y=$x+$y;
        }
        katsuki();
        echo $y; // 输出 18
    ?>

局部变量
函数内部声明的变量是局部变量,仅能在函数内部访问

超级全局变量

$GLOBALS
是PHP的一个包含所有全局变量的数组,可以在任意位置使用
$_SERVER
是一个包含了头信息(header)、路径(path)等信息的数组
$_POST / $_GET
被广泛应用于收集表单数据,常用于ajax请求等操作
$_COOKIE
用于收集前端发送过来的cookie数据
$_REQUEST
变量包含了 $_GET$_POST$_COOKIE 的内容
$_SESSION
服务器版cookie
$_FILES

常量

规范

命名规则与变量一致,但常量名不需要加 $ 修饰符。
常量值被定义后,在脚本的其他任何地方都不能被改变。
默认是全局作用域,可以在整个运行的脚本的任何地方使用。
常量名建议全部大写
格式:
define(name,value)

name:必选参数,常量名称,即标志符。
value:必选参数,常量的值。
define("MY_NAME", "katsuki");

运算符

算术运算符
+, -, *, /, %
取反-,
赋值运算符
递增/递减运算符
比较运算符
等于:x == y
恒等于:x === y
不等于:x != y ,x <> y
不恒等于:x !== y
大于:x > y
小于:x < y
大于等于:x >= y
小于等于:x <= y
逻辑运算符
与:x and y,x && y
或:x or y,x || y
异或:x xor y
非:!x
三元运算符
格式:expr1 ? expr2 : expr3

条件语句

与javascript一致
if语句
switch语句

循环语句

与javascript一致
while
do…while
for

数据类型

String(字符串)
Integer(整型)
Float(浮点型)
Boolean(布尔型)
Array(数组)
Object(对象)
NULL(空值)

String

字符串拼接运算符“.”

<?php 
    $txt1="kasami"; 
    $txt2="katsuki"; 
    //输出kasami - katsuki
    echo $txt1 . " - " . $txt2; 
?>

strlen() 获取字符串长度,得到的字符的字节数
mb_strlen() 获取字符串长度
strpos() 查找某个字符在字符串中的索引,如果未找到匹配,则返回 false

<?php
	$name = "katsuki";
	echo strlen($name);// 7
	echo mb_strlen($name); // 7
	echo strpos($name,"k"); // 0
	$Name = "一姬";//这里一个中文占了3个字节数
	echo strlen($Name);// 6
	echo mb_strlen($Name); // 2
	echo strpos($Name,"姬"); // 3
?>

Array

数组是一个能在单个变量中存储多个值的特殊变量。

类型

数值数组 - 带有数字索引值的数组
关联数组 - 带有指定的键的数组,每个键关联一个值
多维数组 - 一般都是外层为数值数组,内层为关联数组(类似于js的数组对象)
创建数组
使用array()函数创建

  • 数值数组
<?php
	$arr = array("kasami","katsuki");
	//Array ( [0] => kasami [1] => katsuki )
	print_r($arr);
	/*本地路径D:\...\array.php:28:
	  array (size=2)
	  0 => string 'kasami' (length=6)
	  1 => string 'katsuki' (length=7) */
	var_dump($arr);
?>
  • 关联数组
<?php
	$msg = array(
		"name" => "katsuki",
		"age" => 18
	);
?>

  • 多维数组
<?php
	$arr = array(array(
		"name" => "katsuki",
		"age" => 18
	),array(
		"name" => "amane",
		"age" => 20
	));
	echo $arr[0]["name"]; // katsuki
	var_dump($arr);
	/*
	array (size=2)
	  0 => 
	    array (size=2)
	      'name' => string 'katsuki' (length=7)
	      'age' => int 18
	  1 => 
	    array (size=2)
	      'name' => string 'amane' (length=5)
	      'age' => int 20
	*/
?>

数组方法

count() 获取数组长度
in_array() 判断某个值是否存在数组中
array_slice() 从数组中取出一段
第一个参数放入数组
第二个参数为元素的开始位置,0 = 第一个元素,-2 意味着从数组的倒数第二个元素开始。
第三个参数为返回数组的长度,可选
array_rand() 随机获取索引值

<?php
	$arr = array("kasami","katsuki");
	echo count($arr);// 2
	//echo输出字符串,布尔值输出不了
	var_dump(in_array("katsuki",$arr)); // boolean true
	echo array_rand($arr); // 0或1
	var_dump(array_slice($arr,1)); // katsuki
	var_dump(array_slice($arr,-2)); // kasami katsuki
?>

遍历数组
for
一般用于遍历数值数组

<?php
	$arr = array("kasami","katsuki");
	for($i=0;$i<count($arr);$i++){
		echo $arr[$i];
	}
	// kasamikatsuki
?>

foreach()
一般用于遍历关联数组

<?php
	$arr = array(
		"name" => "katsuki",
		"age" => 18
	)
	foreach($arr2 as $key => $val){
        echo $key.$val." ";
    }
    // namekatsuki age18
?>

数组排序

sort() 对数组进行升序排列
rsort() 对数组进行降序排列
asort() 根据关联数组的值,对数组进行升序排列
ksort() 根据关联数组的键,对数组进行升序排列
arsort() 根据关联数组的值,对数组进行降序排列
krsort() 根据关联数组的键,对数组进行降序排列

函数

内建函数

PHP 的真正威力源自于它的函数。在 PHP 中,提供了超过 1000 个内建的函数,请参考文档

自定义函数

参数
参数默认值
return返回值

<?php
function add($x,$y){
    $total=$x+$y;
    return $total;
}
?>

面向对象

定义一个类

类使用 class 关键字后加上类名定义。
类名后的一对大括号{}内可以定义变量和方法。
类的变量使用 var 来声明, 变量也可以初始化值。
函数定义类似 PHP 函数的定义,但函数只能通过该类及其实例化的对象访问。

<?php
    class Kasami{
        // 成员属性
        var $name;
        var $age = 18;
        //成员方法
        function setName($name){
            $this->name = $name;
        }
        function getAge(){
            return $this->age;
        }
    }
    //实例化对象
    $p = new Kasami('katsuki');
?>

调用成员属性/方法
在实例化对象后,我们可以使用‘->’操作该对象调用成员属性/方法

$p->setName('katsuki');
$p->name;

构造函数

__construct构造函数是一种特殊的方法。主要用来在创建对象时初始化对象,写在创建对象的语句中。

class Web{
    function __construct( $par1, $par2 ) {
       $this->url = $par1;
       $this->title = $par2;
    }
}

继承

使用关键字 extends 来继承一个类,继承后子类就拥有父类的属性和方法(私有除外),格式如下:

class Katsuki extends Kasami {
    // 添加成员函数
    function setAge($age){
        $this->age = $age;
    }
    //重写方法
    function setName($name){
        $this->name = $name;
        return $name;
    }
}
  • 私有属性/方法不能被继承

本地数据操作

文件的读取与写入

fopen(filename,mode):打开文件
使用fopen函数打开文件时,你首先需要明确:
打开文件干什么?是读文件中的数据呢,还是将数据写入文件,亦或者读写文件
另外你需要考虑如果文件中已经存在相关数据,你是覆盖原有文件中的数据呢,还是仅仅将新数据添加至文件末尾
文件模式:
r 以只读方式打开文件,从文件头开始读
r+ 以读写方式打开文件,写入时以追加的方式写入文件
w 以写入方式打开文件,从文件头开始写。如果文件不存在则尝试创建,如果文件存在,则先删除文件中的内容
w+ 以读写方式打开文件,从文件头开始读写。如果文件不存在则尝试创建,如果文件存在,则先删除文件中的内容
a 以写入方式打开,从文件末尾开始追加写。如果文件不存在则尝试创建
a+ 以读写方式打开,从文件末尾开始追加写入或者读。如果文件不存在则尝试创建。
fread():读取内容
fwrite():写入内容
fclose():关闭文件,避免资源占用
filesize():读取文件字符长度

//获取文件路径
$path = '../data/katsuki.json'
//以读取模式打开文件
$file = fopen( $path , 'r');
//读取文件内容
$content = fread($file, filesize($path));
//关闭文件,减少资源占用
fclose($file);

直接返回数据

把数组转成字符串
json_encode();

php5.4+ 使用JSON_UNESCAPED_UNICODE防止中文转义
json_decode(json,assoc);
把字符串转成数组/对象
json:待解码的 json string 格式的字符串
assoc:默认false,返回object, 当该参数为 true 时,将返回array

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值