php中的基本语法

整体了解

<?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变量的名称只能以英文字母跟下划线"_"开头,不可以以数字开头
?>

基本数据类型

捕获.PNG
  • 整型
  • 小数(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将启用垃圾回收器将对象销毁,从而回收该对象占用的内存
}

static
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 158,736评论 4 362
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,167评论 1 291
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,442评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,902评论 0 204
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,302评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,573评论 1 216
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,847评论 2 312
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,562评论 0 197
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,260评论 1 241
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,531评论 2 245
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,021评论 1 258
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,367评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,016评论 3 235
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,068评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,827评论 0 194
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,610评论 2 274
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,514评论 2 269

推荐阅读更多精彩内容