php总结

基础知识

  1. 程序写在<?php ?>标签内
  2. echo 输出一个以上字符串,中间用逗号隔开,用顿号连接
  3. 换行符PHP_EOL
  4. print 智能输出一个字符串,有固定返回值为1.
  5. ?:三元运算符,1+2==3?4:5 这句话的意思是如果1+2为真返回3,否则返回4
  6. ??空合并运算符,$a ?? “b”;这句话意思是如果a是未定义或值为null,则给它一个默认值为b,否则返回原值。
  7. <=>组合比较符,$c= $a<=> $b;这句话意思是如果a>b则c=1,a=b,c=0,a<b,c=-1。可以比较字符串,比较字符串的时候是从前往后挨个比较字符串的ASCII码的大小。
  8. isset($a) 如果a已声明且不为null则返回true,否则false
  9. is_null($a),如果a值为null则返回true,未声明会报错
  10. empty( $a),当a的值为0,false,null,空数组,空字符串的时候返回true,否则false。未定义的时候也会返回true,但是一般不用它判断未定义变量。

循环

  1. switch循环必须要用break跳出
//下面代码case后面不用break的话,会从第一个符合要求的语句开始,往后全部输出一遍。
switch ($favfruit) {
   case "apple":
     echo "Your favorite fruit is apple!";
     
   case "banana":
     echo "Your favorite fruit is banana!";
    
   case "orange":
     echo "Your favorite fruit is orange!";
     
   default:
     echo "Your favorite fruit is neither apple, banana, or orange!";
}

  1. continue 循环的跳出,continue控制程序放弃本次循环continue语句之后的代码并转而进行下一次循环。continue本身并不跳出循环结构,只是放弃这一次循环。
  2. break 他的作用是跳出当前的语法结构,执行下面的语句。break语句可以带一个参数n,表示跳出循环的层数,如果要跳出多重循环的话,可以用n来表示跳出的层数,如果不带参数默认是跳出本重循环。
for($i = 1;$i <= 10; $i++ ){
    for($j = 1;$j <= 10;$j++){
        $m = $i * $i + $j * $j;
        echo”$m \n<br/>”;
        if($m < 90 || $m > 190) {
            break 2;
       }
    }
}

这里使用了break2跳出了两重循环

数组

php里数组更像是java里的对象,可以指定每个元素的键,如果不指定键默认情况下是0123,当数组里只指定了部分键时,没有指定的元素键值就是默认的数字键。常用函数:count输出数组长度,print_r输出数组,foreach遍历数组。

$a=["name"=>"tom","age"=>"12","sex"=>"man"];//指定键和值
$b=[1,2,3];
$b=[
    [1,2,3],
    ["a"=>11,"b"=>22,"c"=>23],
];
print_r($a);//打印数组
print_r($b);
count($a);//输出数组的长度。
echo $a['name'];
echo $b[1]["a"];
//数组的遍历,key是键,value是值,PHP_EOL是php里的常量,表示换行。
foreach($a as $key => $value){
echo PHP_EOL.$key.$value;
}
//数组的追加,下面这句话会自动把c追加到数组的末尾,键默认数字
$b[]=$c;

数组的运算

  1. 加号,两个数组合并,$a+ $b表示把b合并到a,相同键的元素保留加号前面数组的元素,不同键的元素追加到a的末尾。
  2. array_merge( $a, $b)函数和加号类似,只有一点相反,相同键的元素会用后面的替换前面的。
  3. 判断相等 == 有相同的键值对,相同的即为true。===有相同的键值对,且顺序相同,且类型相同才为true。

数组在网站中实际使用案例

 <?php 
        $contentArr=[
            [
                "content"=>"这里是您的博客内容,您可以使用html和css编写自己的网页。",
                "createDay"=>"2023.09.25"
            ],
            [
                "content"=>"个人介绍",
                "createDay"=>"2023.09.23"
            ],
            [
                "content"=>"文章列表",
                "createDay"=>"2023.09.22"
            ],
            [
                "content"=>"联系方式等",
                "createDay"=>"2023.09.21"
            ],
            [
                "content"=>"这里是",
                "createDay"=>"2023.09.20"
            ],
        ];
        $content="这里是您的博客内容,您可以使用html和css编写自己的网页。";
        $creatDay="2023.09.25";
    ?>
    <div class="container">
        <h1 class="title">欢迎来到我的博客</h1>
        <!-- 遍历数组,并输出到HTML标签 -->
        <!-- foreach可以分开写,使用php标签分成两部分,中间是HTML标签 -->
        <?php
            foreach($contentArr as $key=>$value){
        ?>
        <div class="text-area">
            <span class="number"><?php echo ($key+1) ?></span>
            <span class="create-day"><?php echo $value["createDay"]?></span>
            <?php echo $value["content"]?>
        </div>
        <?php
            }
        ?>
        
        <!-- 使用定界符的写法 -->
        <?php
            foreach($contentArr as $value){
                echo <<<EOF
                <div class="text-area">
                    <span class="create-day">{$value["createDay"]}</span>
                    {$value["content"]}
                </div>
EOF;
            }
        ?>
        
        <div class="text-area">
            <span class="create-day"><?php echo $creatDay ?></span>
            <?php echo $content?>
        </div>
        <!-- <div class="text-area">
            <span class="create-day">2023.09.21</span>
            个人介绍
	        </div>
	        <div class="text-area">
	            <span class="create-day">2023.09.20</span>
	            文章列表
	        </div>
	        <div class="text-area">
	            <span class="create-day">2023.09.19</span>
	            联系方式等
	        </div>
	        <div class="text-area">
            <span class="create-day">2023.09.18</span>
            这里是
       		</div> -->
    </div>

字符串函数

  1. strlen() 字符串长度,英文字符长度为1,汉字长度为3
  2. strpos($str,“xxx”) 查找某一段字符串第一次出现的位置,没找到返回false。一般用来判断是否含有某段字符串
  3. stripos()同上,不区分大小写
  4. strrpos() 同上上,查找最后一次出现的位置
  5. strripos() 同上,不区分大小写
  6. explode(“,”,$str)根据给定的字符,把字符串分割成段,并写入数组内
  7. implode(“,”,$str)使用给定的字符,把数组拼接成字符串
  8. strtoupper()把字符串改成大小
  9. strtolower()把字符串改成小写
  10. str_replace($search, $replace, $str)查找字符串中的目标文字,并替换成别的字符串
  11. trim() 去除字符串两端的空格
  12. substr()截取字符串的一部分
  13. 更多字符串函数,参考菜鸟教程

定界符

当输出内容需要多次拼接时比较麻烦,可以直接使用定界符<<<EOF,三个尖括号必须,后面的EOF可以换位任意字,只要以同样的字结束即可,结束的字必须顶行写,后面有分号。
当在定界符内部使用数组时需要用大括号括起来

foreach($navbarArr as $value){
    $x=$value["title"];
    echo 
    <<<EOF
    {$value["title"]}
EOF;

函数

  1. date(‘Y-m-d h-m-s’) 年月日时分秒,括号内格式可自定义,Y表示2024年,y24年
  2. 函数的定义方法如下,默认情况下不区分参数类型,需要严格区分类型需用declare(strict_types=1)
 function name(){};
 function name($a){};
 function name(int $a){};
 //严格区分参数类型
 declare(strict_types=1);
 function name(int $a){};

static 使函数运行完后函数中的变量仍然存在,正常情况运行完就销毁了

function run(){
static $a=0;
$a++;
return $a;
}
这个每次运行a都会递增,不带static则每次结果都是1.

unset($a) 删除变量

isset($a) 判断变量是否存在

global 定义全局变量,函数内部定义也有全局作用域

GLOBALS 超级全局变量,这是个数组,使用方式:GLOBALS【‘name’】=“xxx”,执行完就作为数组的元素成为全局变量了。

常量

  1. 常量命名无需$,严格区分大小写,一般用大写。默认是全局的,在任意地方调用
  2. 常量一旦被定义就不能重新定义或取消定义
  3. const不能在条件语句中使用,const可以在类中使用,define不能用于类成员变量,但是可以在类的函数里使用
  4. get_defined_constants()获取所有的常量
//常量的定义
define("NAME","这是一个常量");
const NAME2 = "另一个常量";

文件的调用

  1. require
  2. include 语法: include “./xx.php”

类(class)

  1. 类成员或函数的调用,使用“->”符号.
  2. 访问控制:public 公用,protected 自身和子类可用,private 自身可用
  3. __construct构造函数,前面是两个下划线
  4. __destruct析构函数,不在调用或销毁时使用
  5. static 静态变量或静态函数,无需实例化即可调用,调用方法 self(或类名)::变量名,对静态变量进行的操作会对所有实例生效。
  6. 类常量,不能更改,调用方法同上,用const声明
  7. final 用在类的前面表示不可被继承,函数的前面表示不可被重写,不可用于属性
class Animal{
    public $name;
    public $age;  
    public static $color;
    const AREA = "china";
    public function __construct($name, $age) {
        $this->name = $name;
        $this->age = $age;
        Animal::$color = "white";
        echo "执行了构造函数".PHP_EOL;
    }
    public function eat(){
        echo self::AREA."的".self::$color."的".$this->name."在吃饭".PHP_EOL;
    }
    //析构函数
    public function __destruct(){
        }
}
$cat = new Animal("tom","5");
echo $cat->name.PHP_EOL;
echo Animal::$color.PHP_EOL;
$cat->eat();
Animal::$color = "black";
$cat->eat();
//执行结果
执行了构造函数
tom
white
china的white的tom在吃饭
china的black的tom在吃饭
  1. extends继承
  2. 调用父类的构造函数 parent::__construct()
  • 5
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值