php函数和数据

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>
<div>获取cookie</div>


<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';
$('div').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:'http://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);
}
 
 
 
 ?>   
      

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值