php学习笔记

数据类型
<?php
    define("test1", 666) ; // 常量定义
    $b=<<<test2
        <html> xxxo </html>
    test2;
	echo b; //定界符,输出xxxo
	$a
	function temp(canshu1, canshu2) {
    	global $a; // 声明$a为全局	
    	$a;
	} // 自定义函数
	echo gettype($a); //返回a的数据类型
	echo var_dump($a); // 返回a的长度和类型
    die; // 程序终止
	

	$str = "1,2,3,4,5";
	$arr = explode(",", $str); // 根据","分割str为数组
	$str = implode("-",$arr); //拼接数组,"1-2-3-4-5" 

	$arr=array(1, 2, 3, 4);//定义数组
	$fla = in_array(3, $arr);//检查3是否在数组中,返回值Boolean  
	trim(); // 去掉左右空格 
    $str=str_replace("a", "b", "c"); // 在c中将a替换成b
	strrev(); // 字符反转  
	$arr=array('a'=>1,'b'=>2); // 键名=>键值对形式数组
	unset($arr[$index]); // 删除下标为index的值
	array_push($arr, 4);
	array_slice($ayy, aarrint offset, [int length]); // 获得数组的子集
	foreach ($arr as $k=>$v) { 
        //遍历k,v键值对 
        //只适合数组 
    }
	
	max($arr); //获得数组arr中最大值
	//	PHP将非数值字符串当成0
	array_merge($arr1, $arr2);
	
	// 对象object
	class temp{
        ;
    }
?>
运算符
@ //错误控制运算符
=== //判断值和数据类型是否都相等
3>2?1:0; // 三目运算符
分支、循环结构
if(){
    ;
}
else {
    ;
}
for($i=0; $i<=10; $i++) {
    ;
}
while($i<100) {
    $i++;
}
函数
function cs() {
    $res = 1; 
	return $res;
}
// 系统函数
 print_r();
function cs() {
    static $res=1; //定义静态变量
    $GLOBALS["a"]=1;
}
// 变量函数
// 回调函数
// 递归函数
// 时间函数
if(function_exists('date_default_timezone_set')) {fdate_default_timezone('Hongkong');} //中国时区
echo date("Y-m-d H:i:s"); // 当前日期
checkdate(); // 判断日期合法性
// 时间戳:距离1970.1.1的秒数 
time(); //当前时间的时间戳
strtotime("2030-01-01 00:00:00"); //该日期的时间戳
echo h."小时".m."分".s."秒"; // 数据连接用.
PHP-传值
//_GET传值在url地址中暴露,安全性较弱
//表单传值||Ajax
<form action="a_do.php" method="POST"> // 跳转到a_do.php文件下
 	<input type="text" name="username" value="" />
	<input type="submit" name="sub" value="submit" /> // 提交类型一定是submit
</form>

/* ajax传值*/
<form>
      userName:<input type="text" name="name">
      passWord:<input type="password" name="passWord">
      <inputype="button" value="提交" id="btn"/>
</form>
          
$("#btn").click(function() {
 $.ajax({
    type: 'post',
    url: 'formDate',
    data: $("form").serialize(),
    success: function(obj) { //obj为php
        if (obj == "success") {
            layer.alert('添加提交成功!',
            function(index) {
                window.location.reload();
            });
        } else {
            layer.alert("添加提交失败")
        }
    },
    error: function(obj) {
        layer.alert("网络出现异常,请稍后重新发布!!!!")
    }
});
})

         
// 文件上传
<input type='file' name='tt'/>
move_uploaded_file($file_tmp, $dir.$name)// 将文件传到指定目录dir下重命名为name
         
    
正则表达式

描述字符排列模式的一种语法规则

preg_match(); // 验证数据的合法性
preg_replace(); // 按规则替换数据
preg_split();	// 正则分割函数, 按规则分割数据
preg_match_all(); // 获得匹配规则的数据
$zz = "/正则内容/"; 
$zz = "/^正则内容$/"; // ^字符串首匹配,$字符串尾匹配

//验证手机号码格式是否正确
$zz="/^1[0-9]{10}$/";
if(preg_match($zz, $phone)) echo 1;
//验证邮箱地址是否正确
$zz="/^\w+@[a-z-A-Z0-9]+\.[a-zA-Z0-9]{2,4}$/"; //+不是连接符,是次数元字符
//验证网址链接
$zz="/^htttps?:\/\/w+\.+\w+$/"
$zz="/^(http)|(https):\/\/\/w+\.+\w+/$/"
//验证真实姓名为汉字
$zz="/^[^u4E00-u9FA5]{4, 10}$/";
//将显示手机号码中2,5,9,6,3替换成*
preg_replace("/[293]/"'*',"15888261303");
    
PHP数据库操作
<?php
    include("other.php");
	include_once("other.php"); // 仅包含一次
	$conn=mysqli_ connect("localhost","root","root");
	if(!$conn) {
        die("链接数据库失败!");
    }
	mysql_select_db($conn, "liuyan"); // 设置操作的数据库
	mysql_query($conn, "set names utf8"); // 设置操作编码
	$sql = "insert into obj_message set nicheng='".$arr['username']."', shijian='".date("Y-m-d H:i:s")."'";
	$rst=mysqli_query($conn, $sql);
	if($rst) {
        echo 1;
    }
	else echo 0;
?>

数据库引擎、多表查询、外键、索引、用户及权限

外键

外键是指引用另外一个表中的一列或多列数据,被引用的列应该具有主键约束或者唯一性约束(简单来说外键是另一个表的主键或者唯一约束)。外键可以有重复的, 可以是空值,用来建立和加强两个表数据之间的连接

主要作用是保证数据的一致性和完整性,并且减少数据冗余

-- 由于一个班级可以有多个学生
-- 定义外键约束
ALTER TABLE student
ADD CONSTRAINT fk_class_id  -- 外键约束的名称fk_class_id可以任意
FOREIGN KEY (class_id)     -- 指定了class_id作为外键
REFERENCES class (id);    -- 指定了这个外键将关联到class表的id列(即class表的主键)
-- 删除外键约束
ALTER TABLE student
DROP FOREIGN KEY fk_class_id;

由于外键约束会降低数据库的性能,大部分互联网应用程序为了追求速度,并不设置外键约束,而是仅靠应用程序自身来保证逻辑的正确性。这种情况下,class_id仅仅是一个普通的列,只是它起到了外键的作用而已。

项目架构分析
// 展示模块
// 管理模块
// 项目架构核心:1.mysql数据库的构架 2.用户/管理员权限的分配
PHP面向对象编程

面向对象编程(Object Oriented Programming,OOP)

class Lei {
    public $temp1; // 在任何地方被访问
    protected $temp2; // 可以被其自身以及其子类和父类访问
    private $temp3; // 只能在该类 里面访问
    public function study($name='gg') {
        echo $this->$name;
    } // 方法
} // 类名首字母大写
$opp = new Lei;
$opp -> study(); // 调用方法
// 构造方法
// 构造函数是创建对象时,由系统自动调用
public function __construct(形参列表){
	// 完成对成员属性的初始化
}
// 析构方法
public function __destruct(){
	// 释放该对象的资源
}
// 魔术方法
$opp->__get(); //读取不可访问属性的值
$opp->__set(); //给不可访问属性赋值
// 不可访问的属性:属性不存在、protected 或 private

// 继承
	class  类名  extends 父类名{
		  //属性,方法等等.
	}
// 抽象类
	abstract class 类名 {
		abstract 修饰符 function 函数名(参数列表);     //注意这里没有方法体!
	}
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值