0

0

PHP 基础知识代码总结

jacklove

jacklove

发布时间:2018-07-02 11:57:51

|

2198人浏览过

|

来源于php中文网

原创

一、php基础语法 变量到数组

<?php
       //phpinfo();
       
       /* 变量
       $a=1;//不分配空间
       echo "\$a=".$a;
       echo "<br/>";
       var_dump($a);// 结果为NULL
       echo "hello worrld";*/
       
       /* int型最大能表示多大
        echo "<br/>".PHP_INT_SIZE;
       echo "<br/>".PHP_INT_MAX;//(2的31次方-1) 31:4*8-1个符号位
       $a=-2147483648;
       echo "<br/>".$a;
       var_dump($a);//超过int型 范围 则会变为float类型*/
       
       /* 布尔值
       $d=0.0;
       if(!$d){
           echo "!!";
           }*/
       /* 浮点数
       浮点数精度是14(从左边开始,第一个非0就是精度的开始)*/
       
       /*字符型
       
       单引号和双引号区别
       
       $d=90;
       $d1="$d";
       $d2='$d';
       echo $d1;
       echo $d2;*/
       
       //$a=7/5.1;
       //echo $a;
       
       # === 包括类型也相等
       /*$a=2;
       $b=2.0;
       if($a!=$b)
       {
           echo"!=";
           }
           if($a!==$b)# !== 包括类型也不相等
           {
               echo "!==";
               }*/
       
       /*  &&和||只要前面的一个为真假即不执行后一个 
           and 和 or 则不是
           or的优先级比=低  所以  
           $e=false or true; //结果为false,因为此时$e先赋值为FALSE
           var_dump($e);
           $f=true and false;//结果为true,因为此时$e先赋值为true
           var_dump($f);*/
           
       /*字符串拼接
          $a="1";$b="2";
          $c=$a.$b;
       */
       
       /* 对象类型运算符
       
       class Dog{}
       $dog=new Dog;
       var_dump($dog instanceof Dog);
       
       $a=3;
       echo $a++*3;//9*/
       
       /*常量
       define("TAX_INT",21);
       #$TAX_INT=9;
       echo TAX_INT;
       
       const TAX_TWO=0.3;
       echo "<br/>".TAX_TWO; */
       
       /*
       #require 'other.php';//不会判断是否重复,可能导致重复输出
       require_once 'other.php';// 先判断是否有重复引入
       
       #include '111other.php';
       #include_once 'other.php';
       
       #require 和include区别:
          #include如果出现了错误会继续执行,
        #而require则会终止程序
       
       #echo "22";
       
       $i=2;
       $result=getNum($i);//传值,也可以传地址&
       echo $result;*/
       
       /*全局变量 global
       $a=1;
       function get()
       {
           global $a;//可作用于局部内了
           $a++;
           }
           get();
           echo $a;
       */
       
       /*数组初始化
       //$array=array(1.2,12,"wrwe",true);
       //echo count($array);
       
       $arr=array("log"=>"daomul","mima"=>123);
       echo count($arr)."<br/>";
       foreach($arr as $key=>$val)
       {
            echo $key."=".$val."<br/>";
           }
           
           $arr2=array(""=>"32",1=>"fdsf",23,23);
           echo $arr2[""]."<br/>";
           echo $arr2[2]."<br/>";
           
           #使用true作为下标,即是1 ,false :0;  null:""
           
           $arr3=array(123.4=>"arr3");
           echo $arr3[123]."<br/>";
           
           #显示详细数组信息
           print_r($arr3); echo "<br/>";
           var_dump($arr3);
           
           #数组可以动态增长
           $arr4=array(2,3);
           echo $arr4[1]."<br/>";
        $arr4[2]='11 22 333 444';
        #echo $arr4[2];
        
        #字符串的拆分 explode
        $arr=explode(" ",$arr4[2]);
        print_r($arr);
        
        foreach($arr as $key=>$val)# (要循环的数组 as 数组下标变量)
        {
            echo "<br/>$key=>$val";
            }
            
            echo "<br/>".$arr[1];
            unset($arr[1]);#销毁数组元素后,关键字下标不会被重新填充组合
            print_r($arr);*/
            
            /*数组运算 叠加
            $a=array("a"=>12,"b"=>23);
            $b=array("a"=>21,"c"=>43);
            $a=$a+$b;
            print_r($a);*/
            
            
?>

二、数组

 

PinPHP购物分享系统
PinPHP购物分享系统

PinPHP是一套基于LAMP技术架构(Linux+Apache/Nginx+MySQL+PHP)的、免费的、开源的社会化分享系统!同时PinPHP分享系统V3.0正式版在V2.2正式版的基础上,对“网站架构”、“负载性能”等几大方面,进行了全面升级。注意事项:1、V3.0采用全新的代码结构与数据库结构,不可以进行版本

下载
<html>
    <head>
        <meta http-equiv="content-type" content="text/html;charset=utf-8">
    </head>
    <body>
        <h1> 同一个界面传输参数</h1>
        
        <?php
          /* 在 input中加 value="<?php echo $grades; ?>" 仿造百度搜索 */
         error_reporting(E_ALL ^ E_NOTICE);
        $grades=$_REQUEST['grade'];  
        $grade=explode(" ",$grades);
        $all=0;
        foreach($grade as $k=>$v)
        {
            $all+=$v;
        }
      ?>
    
        <form action="test.php" method="post">
            <input type="text" name="grade"  value="<?php echo $grades; ?>"/>
            <input type="submit" value="start"/>
        </form>
        
        <?php
           echo "总的:".$all;        
        ?>
    </body>
</html>

 三、静态变量

<?php
      class Child
      {
          public static $num=0;
          public $name;
          function __construct($name) //只有new之后才能调用
          {
              $this->name=$name;
              }
              //静态变量不能用this来访问
          public function join()
          {
              self::$num+=1;  //可以: Child::$num
              echo $this->name."you"; 
          }    
      }
      
      $child1=new Child("k");
      $child1->join();
      $child1=new Child("a");
      $child1->join();
      $child1=new Child("b");
      $child1->join();
      echo "<br/>".Child::$num;
      //类外只能是  类名::变量,
          //类内就能两种
?>

四、继承/封装/多态/抽象

立即学习PHP免费学习笔记(深入)”;

/*class Child
      {
          public static $num=0;
          public $name;
          //构造方法
          function __construct($name) //只有new之后才能调用
          {
              $this->name=$name;
              }
              //静态变量不能用this来访问
          public function join($ifee)
          {
              self::ifee+=1;  //可以: Child::$num
              echo $this->name."you"; 
          }    
      }
      
      $child1=new Child("k");
      $child1->join();
      $child1=new Child("a");
      $child1->join();
      $child1=new Child("b");
      $child1->join();
      echo "<br/>".Child::$num;
      //类外只能是  类名::变量,
          //类内就能两种*/
          
          
          
   //静态方法不能采用非静态变量,只能使用非静态变量
    // 成员函数之间相互调用,需要用  $this->text();
    
    //继承
    
    //1、子类只能继承一个父类
    // 如果想多重继承可以考虑通过多次继承:
    /*class A{}
    class B extends A{}
    class C extends B{}*/
    
    //2、父类中的构造方法,在创造一个子类的对象实例的时候不会默认自动调用
    //3、 子类中调用父类的方法   
        //父类名::方法名(); /  parent::方法名(); parent小写的
        
    //覆盖:
         # 子类的方法和父类的方法名称和参数个数完全一样,但不要求参数名相同
         # 但是修饰符可以不同,但是子的范围〉=父类范围
         # 父类是private则不能覆盖
    /*class A{
        function F(){
           echo " 父类在此!<br/>";
        }
    }
    class B extends A{}
    class C extends B{
        function F(){
            echo "调用了父类了<br/>";
            parent::F();
            A::F();
        }
    }
    $C1=new C();
    $C1->F();*/
    
    //抽象类:父类中不需要被实例化,只让子类继承,也可以被调用里面的;达到代码复用
    
      #抽象类   abstract class name{}
      #抽象方法 abstract public cry();
      #抽象类不一定也有抽象方法
      #类包含抽象方法则必须为抽象类
      #子类继承抽象父类,则必须为抽象类或者实现继承的所有,所有!方法
      
      
      //接口:interfacde 接口{//属性 //方法} 
       #  只能定义规范,让类去实现接口 ,不能自己实现,
       #  class c implements 接口{}
       #  接口不能被实例化/接口能继承其他多个接口/不能不为public
       # 一个类实现了一个接口,必须把接口以及其继承的接口的方法全部实现
       # (1 多个平级的类都要实现某个功能,只是实现方式不同,没有继承关系,  
       #(2 项目经理定规范,让其他程序员实现
       /*interface Stu
       {
             const A=90; 
          public function add();    
       }
       interface Stu2{}
       
       class MyStu implements Stu,Stu2
      {
          public function add()
          {
              echo "dddd".Stu::A."<br/>";
          }
      }
      $mystu=new MyStu();
      $mystu->add();
       echo "OK".Stu::A; #获得接口中的常量*/
       
       //final 使类中的方法不被覆盖
       # final 不能修饰成员属性
       /*class A
       {
           final public function get($salary)
           {
             return $salary*3;
               }
       }
       class B extends A
       {
            public function get($sal)
            {
              return $sal*2;    
            }
           }
           $b=new B();
           $b->get("21"); #Cannot override final method A::get() */
           
           //const常量
           # 要赋初始值;不能后面赋值;不能加$等修饰符
           # self::A ; 类名::A ;接口名::A;  等方式获得常量A的值

五、文件操作以及错误处理

 

<?php
  
  // 文件操作
  /*处理错的方式1
  if(!file_exists("file1.txt"))
  {
      echo "not here";
      exit();
  }
  else
  {
      $fp=fopen("file1.txt","r");
      echo "文件已打开";
      fclose($fp);
  }*/
  
  /* 处理错的方式2
  if(!file_exists("a.txt"))
  {
      die("wenjianbucunzai");
  }
  else
  {}
  echo "end";*/
  /*处理错的方式1
  
  file_exists("b.txt") or die("zhen de ");
  echo "end";
  */
  
  //定义错误函数
  /*function my_error($error,$err_message)
  {
    echo "<font size='5' color='red'> $error </front><br/>";//2
    //echo "错误信息是:".$err_message;
    exit();
      }
  //改变系统默认的错误处理函数(“用户自己定义的错误输出函数”,“错误类型”)
   set_error_handler("my_error",E_WARNING);
   $fp=fopen("aa.txt",'r');*/
   
   //错误触发器
   
   function my_error3($error,$err_message)
   {
         echo "错误号:".$error;
       }
       function my_error4($error,$err_message)
       {
           echo "big big!";
           }
   set_error_handler("my_error3",E_USER_WARNING);//
   set_error_handler("my_error4",E_USER_ERROR);//致命错误,不继续执行
   $age=140;
   if($age>120)
   {
       //调用触发器的时候指定错误级别
         trigger_error("输入的数字过大!",E_USER_ERROR);
         //trigger_error("输入的数字过大!",E_USER_WARNING);
         //exit();
       }
       echo "ok";
?>

 六、错误日志

<?php
 
 //错误日志 php.ini 中的error_log的配置
 
 function my_error5($error,$err_meaasge)
 {
       $err_info="错误信息:".$error."--".$err_meaasge;
       //echo time();
       //输出 当前日期
       //     调整时区:默认时期是UTC和中国差8小时 PRC 或者Asia/Chongqing
       
       date_default_timezone_set("PRC");
      
       echo date("Y-m-d G-i-s");
       echo "<br/>".$err_info;
       
       #将错误存入系统文件中
       error_log("时间是:".date("Y-m-d G-i-s")."-".$err_info."\r\n",3,"myerror.txt");//3个参数
     }
     set_error_handler("my_error5",E_USER_WARNING);
     $i=1;
     if($i<2)
     {
         trigger_error("输入的数字过小",E_USER_WARNING);
     }
?>

 七、捕获异常

<?php
  
  //处理异常
  #注意事项:异常抛出之后,得代码不会被继续执行
  #抛出异常之后如果没用处理则会报错
  try
  {
      addUser("1a");
  }
  catch(Exception $e)
  {
      echo "失败信息:".$e->getMessage();//getLine()
      #可以继续抛出 throw $e;
      #也可以顶一个顶级异常处理
      # $i=8/0  fopen("a.txt","r") 很难抛出异常
  }
  
  function addUser($user)
  {
      if($user=="a")
      {
         echo "登陆成功!";
      }
      else
      {
         throw new Exception("用户名错误!");
      }
  
  }
  
  /*#顶级异常处理
  function my_error()
  {
      echo "我是顶级异常处理!".e->getMeaasge();
  }
  set_error_handler("my_error");*/
?>

 

 相关推荐:

PHP调用ffmpeg对视频截图并拼接脚本

Yii2中的场景(scenario)和验证规则(rule)的详解

MixPHP、Yii和CodeIgniter的并发压力测试的小结

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

相关文章

PHP速学教程(入门到精通)
PHP速学教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
java多态详细介绍
java多态详细介绍

本专题整合了java多态相关内容,阅读专题下面的文章了解更多详细内容。

27

2025.11.27

PHP Yii框架专题
PHP Yii框架专题

本专题专注于PHP主流框架Yii的应用,系统讲解MVC架构、路由机制、数据库操作、表单处理、安全验证与RESTful API 开发等核心内容。通过电商网站、后台管理系统与内容管理平台等实战项目,帮助学员快速掌握Yii框架的开发技巧与实战经验。

86

2025.09.04

Swift iOS架构设计与MVVM模式实战
Swift iOS架构设计与MVVM模式实战

本专题聚焦 Swift 在 iOS 应用架构设计中的实践,系统讲解 MVVM 模式的核心思想、数据绑定机制、模块拆分策略以及组件化开发方法。内容涵盖网络层封装、状态管理、依赖注入与性能优化技巧。通过完整项目案例,帮助开发者构建结构清晰、可维护性强的 iOS 应用架构体系。

2

2026.03.03

C++高性能网络编程与Reactor模型实践
C++高性能网络编程与Reactor模型实践

本专题围绕 C++ 在高性能网络服务开发中的应用展开,深入讲解 Socket 编程、多路复用机制、Reactor 模型设计原理以及线程池协作策略。内容涵盖 epoll 实现机制、内存管理优化、连接管理策略与高并发场景下的性能调优方法。通过构建高并发网络服务器实战案例,帮助开发者掌握 C++ 在底层系统与网络通信领域的核心技术。

7

2026.03.03

Golang 测试体系与代码质量保障:工程级可靠性建设
Golang 测试体系与代码质量保障:工程级可靠性建设

Go语言测试体系与代码质量保障聚焦于构建工程级可靠性系统。本专题深入解析Go的测试工具链(如go test)、单元测试、集成测试及端到端测试实践,结合代码覆盖率分析、静态代码扫描(如go vet)和动态分析工具,建立全链路质量监控机制。通过自动化测试框架、持续集成(CI)流水线配置及代码审查规范,实现测试用例管理、缺陷追踪与质量门禁控制,确保代码健壮性与可维护性,为高可靠性工程系统提供质量保障。

68

2026.02.28

Golang 工程化架构设计:可维护与可演进系统构建
Golang 工程化架构设计:可维护与可演进系统构建

Go语言工程化架构设计专注于构建高可维护性、可演进的企业级系统。本专题深入探讨Go项目的目录结构设计、模块划分、依赖管理等核心架构原则,涵盖微服务架构、领域驱动设计(DDD)在Go中的实践应用。通过实战案例解析接口抽象、错误处理、配置管理、日志监控等关键工程化技术,帮助开发者掌握构建稳定、可扩展Go应用的最佳实践方法。

59

2026.02.28

Golang 性能分析与运行时机制:构建高性能程序
Golang 性能分析与运行时机制:构建高性能程序

Go语言以其高效的并发模型和优异的性能表现广泛应用于高并发、高性能场景。其运行时机制包括 Goroutine 调度、内存管理、垃圾回收等方面,深入理解这些机制有助于编写更高效稳定的程序。本专题将系统讲解 Golang 的性能分析工具使用、常见性能瓶颈定位及优化策略,并结合实际案例剖析 Go 程序的运行时行为,帮助开发者掌握构建高性能应用的关键技能。

46

2026.02.28

Golang 并发编程模型与工程实践:从语言特性到系统性能
Golang 并发编程模型与工程实践:从语言特性到系统性能

本专题系统讲解 Golang 并发编程模型,从语言级特性出发,深入理解 goroutine、channel 与调度机制。结合工程实践,分析并发设计模式、性能瓶颈与资源控制策略,帮助将并发能力有效转化为稳定、可扩展的系统性能优势。

24

2026.02.27

Golang 高级特性与最佳实践:提升代码艺术
Golang 高级特性与最佳实践:提升代码艺术

本专题深入剖析 Golang 的高级特性与工程级最佳实践,涵盖并发模型、内存管理、接口设计与错误处理策略。通过真实场景与代码对比,引导从“可运行”走向“高质量”,帮助构建高性能、可扩展、易维护的优雅 Go 代码体系。

20

2026.02.27

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
PHP课程
PHP课程

共137课时 | 12.9万人学习

JavaScript ES5基础线上课程教学
JavaScript ES5基础线上课程教学

共6课时 | 11.3万人学习

PHP新手语法线上课程教学
PHP新手语法线上课程教学

共13课时 | 1.0万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号