整体了解
<?php
// 如果不需要界面展示 可以直接写php代码 不需要些html语句
echo "hello";
// 在php中,定义一个变量要以$符号开头
$a = 890; // 定义了一个变量, 该变量叫$a, 然后给变量赋值890
echo "<bt />";
// 注意:变量的数据类型不是固定不变的,是根据上下文决定的
$b = 100; // 此时$b变量是整形
$b = "jake"; // 此时$b由整型变成字符串类型
var_dump($b); // 可以显示变量信息 即可以看到该变量的类型
// php是区分大小写的
$H = 12;
$h = 15;
// php变量的名称只能以英文字母跟下划线"_"开头,不可以以数字开头
?>
基本数据类型
- 整型
- 小数(php是不区分双精度跟单精度小数的)
- 布尔类型
- 字符串
复合类型
- 数组(array)
- 对象(object)
特殊类型
- 空 null
- 资源类型
算术运算
- ++ 自加
- -- 自减
$a = 90;
$a++; // 等价于 $a = $a + 1
$b = 80;
$b--; // 等价于$b = $b - 1;
- 三元运算
表达式 (expr1)? (expire2) :(expire3)
$a = 90;
$b = 80;
$c = $a > $b ? 23:900;
分支控制
- 单分支
if(条件表达式){
}
- 双分支
$age = 30;
if($age > 30){
}else if($age==30){
}else{
}
- 多分支
循环控制
- for循环
for($i = 0; $i<5; $i++){
echo "你好";
}
- while
$i = 0;
while($i<10){
echo "<br /> 你好!!";
$i++;
}
- do while
$age = 0;
do{
echo age;
$age++;
}while($age < 10)
函数
- 封装一个计算函数方法
<?php
$num1 = 10;
$num2 = 12;
// function关键字 jiSuan函数名
// $num1, $num2, $oper 形参 及参数列表 注意参数不需要类型
function jiSuan($num1, $num2, $oper){
$res = 0;
switch($oper){
case "+":
$res = $num1 + $num2;
break;
case "-";
$res = $num1- $num2;
break;
case "*":
$res = $num1 * $num2;
break;
default:
echo "输入运算符有误";
}
return $res;
}
?>
- 如果在别的文件直接调用该函数需要利用关键字require进行导入
<?php
// 引入需要的php文件
require 'funcs.php';
$res = jiSuan(12, 15, "+");
?>
总结函数的格式
function 函数名(参数1,参数2,......){ // 参数列表是不需要数据类型的
// 函数体
return 语句;
}
php页面相互调用的知识点
a.php页面想使用 b.php定义的函数,我们可以使用如下指令
-
require require_once
-
include include_once
- reqire的用法
<?php
require (要引入的文件名);
require "要引入的文件名";
require_once ("引入的文件") 先判断,在引入,如果发现文件已经引入,则不再引入
如果是用require引用重复同一个php 文件,或报错 重复定义
require相当于作用相当于完整的拷贝
?>
include 和require区别(同时也是include_once 跟require_once的却别)
使用include如果出现错误,程序还是会继续执行,只是警告而已,而require程序会退出,不会再执行
常见的错误:例如,包含的文件名写错了 或者文件不存在
数组
$hens[0] = 3;
$hens[1] = 5;
$hens[2] = 1;
$hens[3] = 3.6;
$hens[4] = 2;
$hens[5] = 50;
// 遍历整个数组
for($i = 0; $i<count($hens); $i++){
echo $hens[$i];
}
数组的基本介绍
php中的数组是一组关键字(下标、索引)和值的集合,值可以使任意一种类型
数组的创建方式
方式1
<?php
$array[0] = "jake";
$array[1] = 12;
$array[2] = 12.5;
?>
方式2
$数组名 = array(值1,值2, 值3,......);
$person = array("23", "jake", "1998-11-05");
方式3
自己指定下标
$array["logo"] = "北京";
$array["hsp"] = 123;
或者
$array = array("logo"=>"北京", “hsp”=>123);
PHP面向对象
<?php
// 定义一个类
class Cat{
// 成员属性
public $name,
public $age,
public $color
}
// 创建猫对象
$cat = new Cat();
$cat->name = "小白";
$cat->age = 2;
$cat->color = "黑";
?>
公司的实际开发
类名.class.php
class 类名{
}
例如定义以猫类给别人用,规范的定义一个类
1.创建一个Cat.class.php
2.定义类
class Cat{
// 属性
}
如果给函数传递的参数是一个对象,传递的是地制值
在php中如果数组作为参数默认是值传递(相当于拷贝一份),如果想要地址值传递,需要&$数组名
基本数据类型作为参数传递,是值传递,如果想传递的是地址值,则需在变量前加上&符号
function test(&$test1){
}
成员方法
<?php
// 定义一个类
class Person{
public $age,
// 成员方法
public function speak(){
}
}
// 创建对象
$p = new Person();
// 执行成员对象方法
$p->speak();
?>
构造方法
Class Person{
public $name;
public $age;
public function_construct{
// 当通过new方式初始化一个对象的时候,系统会调用该构造方法
// 注意:构造方法是没有返回值的,它是系统自动调用的
echo "我是构造方法";
}
// 自定义构造方法 php4中的构造方法,名字和类型一致,如果在php5中两个都有,它会优先选择 `function_construct `
public function Person(){
echo "ok";
}
}
// 自定义构造方法
public function_construct($iname, $iage){
$name = $iname; // 这里是错误的写法 它会认为#name是一个新的变量 跟成员属性无关
$iage = $iage;
// 这就需要通过this这个关键字了
this:系统会给每一个对象分配this代表当前对象
// 正确的写法:
$this->name = $iname;
$this->age = $iage;
echo "自定义构造方法";
}
析构方法
主要用于释放资源(比如:释放数据库连接,图片资源,销毁某个对象)
class Person{
public $name;
public $age;
// 构造方法
public function__construct($name, $age){
$this->name = $name;
$this->age = $age;
}
// 写一个析构方法 __是两个下划线
function __destruct(){
echo ""销毁资源<br/>;
}
$p1 = new Person("贾宝玉", 16);
$p2 = new Person("林黛玉", 14);
运行代码我们得出结论:
1.析构方法会自动调用
2.析构方法主要用于销毁资源
3.析构方法调用的顺序是,先创建的对象,后销毁
4.析构方法什么时候被调用
(1)当程序(进程结束)退出时
(2)当一个对象称之为垃圾对象的时候
垃圾对象:在PHP当一个对象没有任何引用指向它的时候,就会成为一个垃圾对象,php将启用垃圾回收器将对象销毁,从而回收该对象占用的内存
}
网友评论