欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

php函数和数据代码实例讲解

程序员文章站 2023-02-28 14:09:09
1.js中的面向对象 说明:      顺序:代码主句执行,逻辑从上到下顺序排列。      选择:代码执行过程中,允许分支语句对要执行的...

1.js中的面向对象

说明:

     顺序:代码主句执行,逻辑从上到下顺序排列。

     选择:代码执行过程中,允许分支语句对要执行的内容进行判断,从而决定程序执行走向。

     循环:面对大量重复执行的过程,采用循环语句实现。

<!doctype html>

<html>

<head lang='en'>

<meta charset='utf-8'>

<title></title>

</head>

<body>

      <script >

       

          function   peo('peoname',peogender ){

                this.peat = function(){

                 console.log('我喜欢吃苹果');

              }

                this.pname=peoname;

                this.pgender=peogender;

              }

              var  leo = new peo('小明','male');

              console.log(leo);

              leo.peat();

              

              var liushishi=new peo('刘诗诗','famale');

              console.log(liushishi);

         </script>

       </body>

   </html>

  2.js中的面向对象特征  公有  私有

 (1) 公有 和方法能够直接被对象访问调用;

      私有 和方法只能够在对象内部访问;对象外部无法直接调用。

 (2) js 中模拟了公有私有的概念

            公有:在构造函数中通过this .添加的属性和方法均为模拟出的公有属性和公有方法。

            私有:在构造函数中没有通过this。添加的局部变量和内部函数,来模拟出私有属性和私有方法。

 (3)特权函数:

     通过公有的方法来操作私有内容,这样的公有方法就成为特权函数。

     特权函数一般分为两种:getter方法用来获取私有值,setter方法用来设置私有值。

    面向对象的私有特征:封装 继承 多态

    封装:构建能解决问题的类,并通过类生成解决问题的对象。

          给类添加公有属性和方法,在通过new 实例化对象。

<!doctype html>

<html>

<head lang='en'>

<meta charset='utf-8'>

<title></title>

</head>

<body>

      <script >

                 function father(tempname, tempage){

                    this. fname=tempname;

                    this.fage=tempage;

                    var xiaojinku='200元';

                    //特权函数

                    this.xiaojinku = function(temp){

                          xiaojinku=temp;

                          };

                          this.xiaojinku=function(){

                           retsum xiaojinku;

                           };

                      }

                   var xiaoming =new father('小明','45');

                   console.log(xiaoming);

                   console.log(xiaoming.fname, xiaoming.fage);

                   xiaoming.xiaojinku ('300元');

                   console.log(xiaoming.xiaojinku());      

                 //原型prototype原型是加给类的 构造函数。

                 function peo(peoname,peoage){

                     this.pname=peoname;

                     this.page=peoage;

                     peo.prototype.peyesnum=2;

                     peo.prototype.pbreathe=function(){

                          console.log('人一出生就会呼吸');

                      }     

                      var lilei = new peo('李雷’,'16');

                      var hanmeimei= new peo('韩梅梅'.'15');

                      console.log(lilei);

                      console.log(hanmeimei);

                      lilei . pbreathe();

                      hanmeimei. pbreathe();

         </script>

       </body>

   </html>

3.继承

a.  原型 链式继承(用处最广,最简单,但是弊端多的方式)

子类的原型=父类的实例。

 b.构造继承 :通过call和apply 函数进行继承(解决了第一种继承的问题,但是出现了新的问题)

 c.组合继承: 把前两种组合在一起,解决了上述两种的问题,但出现了第三种新问题

 d.寄生继承:完美(缺点:麻烦)

<!doctype html>

<html>

<head lang='en'>

<meta charset='utf-8'>

<title>js中继承</title>

</head>

    <body>

      <script >

               function  father(fatherhouse){

                  this. fhouse=fatherhouse;

                  var  xiaojinku ='200元';

                }

               father.prototype.money= '很多';

               var mayun= new father('100平米的房子');

               function son(){

               //子类的原型=父类的实例;

               son.prototype=mayun ;

                var  lilei=new son();

                console.log(lilei);

                console. log(lilei.fhouse);

                console.log(lilei.money);

                console.log(lilei.xiaojinku);

        </script>

       </body>

   </html>

   4.php函数

        函数的声明语法由function命令声明,

函数参数写在小括号内部,

函数返回值在函数内部采用return关键词声明,

函数可以先使用后声明

函数内部返回的函数(闭包)

php中的作用域也采用函数级别,因此函数内部的变量无法在函数外部直接访问。

        在函数外部定义的全局变量并不能在函数内直接使用

        而是通过关键词global在函数内部再次声明才可以。

        在php 的函数中如果想要使用哪怕是全部变量,也必须采用关键词global

        声明一次否则无法生效。

<?php

         $num=12;

         functiong func(){

             global$num;

             echo$num;

             $num++;

         }

         func() ;

         echo '$num';//13   

?>

  5.php 类和对象

    (1)php 中的类

   语法:class 类名{类内部的结构}

   一个类可以包含有属于自己的常量,变量【属性】以及函数【即方法】。

    (2)对象

    描述:php中对象只能通过实例化得到

    类似js中直接编辑“对象”的操作,在php中不能实现

    实例=new类名;

    (3)属性类型的关键字

    描述:public、protected、private.

    pubulic: 被定义为公有的类成员可以在任何地方被访问。

    protected:被定义为受保护的类成员则可以被其自身以及其子类和父类访问。

    private:被定义为私有的类成员则只能北汽定义所在的类访问。

    在类的成员方法中,可以->来访问非静态属性,其中->称为对象运算符。

   <?php

             class peo{

public $peoname = ‘people name’;

function showself(){

echo 'hello world!';

}

   }

   $lili = new peo;//peo object ( [peoname] => people name ) 

   print_r($lili);

//  (4)class 类名{

           const  类常量(开头没有$)=简单值;

           static  静态变量名(开头有$)=简单值;

         }

          const不能发生改变 

          static  仅在类被声明的时候执行一次,但可以修改

          两者的调用方式都用双冒号  : :  调用。

          两者在调用的时候均可不实例化对象直接通过类名调用。 

             class  car{

                       const  cartype='bentian';

                       static  $carleader=' leo';

                       public $fdj='发动机’;

                       private function ability(){

                           echo '跑';

                       }

                       public  function carrun(){

                               $this->ability();

                       }

                 }  

                 echo car : :$carleader;

                 car: : $carleader ='leo's dad';

                 echo car : : $carleader;

                 $mycar =new car() ;

                 echo  car: : $carleader;

                 echo car: :  cartype;

                 $mycar =new= car();

                 echo $mycar: :carrtype;

                 echo$mycar->fdj;

                 $mycar->carrun();

   ?>

  (5) php 中类的构造函数

  class 类名{

            function 类名(){ 主动修改的代码}

  <?php

           class peo{

                   public $peoname;

                   function_construct(){

                   $this->peiname='默认值';

            }

            $leo =new peo();

            echo $leo->peoname;         

  ?>      

(6)类中的继承

继承是指子类会继承父类所有公有的和受保护的属性方法。

在php 中使用 extends 关键词来实现继承。

语法:   class sonclassname  extends fatherclassname{

              子类结构

              }

  对于公有属性和方法的继承,子类可以直接随意使用

  对于受保护的属性和方法的继承,可以在父类或子类内部使用

  对于私有的属性和方法,子类不能够继承。

  <?php

               class father{

                     public$pubpro='父类公开属性';

                     protectde$protecpro='父类的受保护属性';

                     private$pripro='父类私有属性';

                     

                     public function fatherpublicput(){

                         echo$this->pubpro.'<br/>';

                         echo$this->protecpro.'<br/>';

                         echo $this->pripro."<br/>";}

protected function fatherprotectput(){

echo $this->pubpro."<br/>";

echo $this->protecpro."<br/>";

echo $this->pripro."<br/>";}

private function fatherprivateput(){

echo $this->pubpro."<br/>";

echo $this->protecpro."<br/>";

echo $this->pripro."<br/>";

}

}     

                  $father=newfather();

                  echo$father->pubpro;//对

                  echo$father->protecpro;//错

                  echo$father->pripro;//错

                  $father->fatherpublicput();//对

                  $father->fatherprotectput();// 错

                  $father->fatherprivateput(); //错           

                   $son = new son();

   echo $son->pubpro;//对

   echo $son->protecpro;//错

   echo $son->pripro;//错

   $son->fatherpublicput();//对

   $son->fatherprotectput();//错

   $son->fatherprivateput();//错

  

                // 父类公开的属性、父类受保护的属性、报错

                (证明继承的属性只有public 和protected的属性)

  ?>

  cookic指的是当访问页面时,由后边发往前台页面数据时所夹带的一小段信息。

  当后台返回给前台数据的时候,添加的一段“持久”的信息。

因此这段信息必须在php后台代码中插入添加。

  <!doctype html>

<html>

<head lang='en'>

<meta charset='utf-8'>

<title>登录页面</title>

<script type="text/javascript" src='jquery-3.0.0.js'></script>

</head>

<body>

<button>登录按钮</button>

<p>获取cookie</p>

<script type="text/javascript">

         //ajax 请求 asynchronos js and xml

         var arr= document.cookic.split('=');

         var obj={};

         obj[arr[0]] = arr[1];

         if(obj.user info! ='frank+add'){

            alert('您还没登录,赶紧登陆去吧;);

            }else{

            alert('您已经登陆过了,请尽情浏览吧');

            }

            var username = 'frank';

var password = '123456';

$('p').click(function(){

console.log(document.cookie);

var arr = document.cookie.split('=');

console.log(arr);

var obj = {};

obj[arr[0]] = arr[1];

console.log(obj);

console.log(obj.userinfo);

});

            $('button').click(funtion(){

                $.ajax({

                type:'post',

                url:'https://127.0.01/day1/code/lesson4_cookie.php',

                data:{

                    uname:username,

                    upass:password

                 } ,

                jsontyoe:'json',

                success:function(data){

                console.log(data);

                }

            });

         });       

  </script>

</body>

</html>

  ?php

//echo 命令在php中代表输出

//但是如果是请求中,代表返回数据

$username = $_post['uname'];

$password = $_post['upass'];

if($username=='frank' && $password=='123456'){

//给前台添加一个cookie

setcookie('userinfo', 'frank add', time()+2000);

echo "登录成功";

}else{

echo "登录失败";

}

?>

     

    整体操作数据库顺序

      1.建立连接

      2.判断是否连接

      3.设置编码

      4.创建sql语句

      5.执行sql语句,并获得结果

      6.判断结果条数

      7.拼凑结果

      8.json化返回

 <?php

       $con = mysqli_connect('localhost','root','','firstdb');

mysqli_query($con,"set names utf8");

mysqli_query($con,"set character_set_client=utf8");

mysqli_query($con,"set character_set_results=utf8");

$sql = "select * from stuinfoform where 1";

$result = $con->query($sql);

if($result->num_rows>0){

$jsoninfo=[];

for($i=0;$row=$result->fetch_assoc();$i++){

$jsoninfo[$i] = $row;

}

print_r($jsoninfo);

}

 ?>