PHP基础学习笔记1——《十天学会PHP》网易云课堂

1、第一个PHP程序

PHP的基本格式

<?php   ###php边界符
echo "hello world";#内容
?>

php行末尾都要有分号";"。
注释:

<?php
echo "hello world";
#这是一个单行注释格式
//这也是一个单行注释格式
/*
这是多行注释格式
*/
?>

2、php中的变量

php中变量以"$"开头,命名规则跟perl差不多
php中不同的数据类型:不同的数据类型数据都是储存在变量"$"中的,不像perl,不同的数据类型的变量开头不同

int:$a=1;
float:$a=1.5;
布尔值:ture;
字符串:"string$a";'string$a';#单引号不考虑是否有变量,双引号会识别变量
数组:$a=[1,2,3,[1,2,3,44]]; $a=array(1,2,3);
对象:$a=new stdClass;#通过new得到一个对象,对象的理解比较难
null

var_dump()函数可以打印变量的信息,确认变量的数据类型

3、数组

php中的数组是包含“键+值”一种类型

<?php
$arr=[1,2,3,[4,5,6]];
var_dump($arr);   # 输出:array(4) { [0]=> int(1) [1]=> int(2) [2]=> int(3) [3]=> array(3) { [0]=> int(4) [1]=> int(5) [2]=> int(6) } }
?>

上面的是索引数组,键由程序自动定义
关联数组的键由用户自己定义

<?php
$arr=[
        'a'=>1,
        'b'=>2,
        'c'=>3,
        ];
var_dump($arr);# 输出array(3) { ["a"]=> int(1) ["b"]=> int(2) ["c"]=> int(3) }
?>

数组的增改与perl中的差不多,查一般使用var_dum()或echo函数,删一般使用unset()函数

4、数据的发送与接收

  • POST
    客户端提交数据
    html数据的提交需要在form标签内
<!DOCTYPE html>
<html>
  <head>
    <meta charset='utf-8'/>
  </head>
  <body>
    <form action="formsave.php" method='post'> <!--通过post方法将数据提交给formsave.php。通过post方法传递的数据,会将数据内容储存到$_POST这个预定义变量中,可以通过键访问得到-->
      <input type='text' name='aa'/> <!--表单类型与名,以便php中的接收-->
      <input type='text' name='bb'/>
      <input type='submit' value='提交' /> <!--提交按钮-->
    </form>
  </body>
</html>

服务端打印,$_POST是一个数组

<?php
$aa=$_POST['aa'];
$bb=$_POST['bb'];
echo$aa;
echo $bb;
?>
  • GET
    GET与POST差不多,具体查手册

5、PHP中的运算符

PHP中运算符与perl有一些差异,但不是非常的多,具体查看手册

6、函数

定义函数

<?php
function name( $nn,$yy){ #自定义一个函数,$nn和$yy是函数的参数
  echo 123;
  $c=$nn+$yy;
  echo $c;
}
?>

在函数中得到的变量是局部变量,在函数外不能调用,可以通过return()将它们返回变成全局变量
调用函数

name(1,2);#结果是打印123和3

7、类与对象

每个类的定义都以关键字 class 开头,后面跟着类名,后面跟着一对花括号,里面包含有类的属性与方法的定义。

<?php
class SimpleClass
{
    public $var = 'a default value';
    public function displayVar() {
        echo $this->var;  #$this是一个伪变量,可以在类中引用类里面的方法的时候时候,而在类外去引用一个类的方法,需要先实例化为对象才能引用。
    }
}
?> 

要创建一个类的实例,必须使用 new 关键字

<?php
$instance = new SimpleClass();
?> 

调用对象的方法和属性。类的变量成员叫做"属性",或者叫"字段"、"特征",在本文档统一称为"属性"。

<?php
class SimpleClass
{
    public $var = 'a default value';
    public function displayVar() {
        echo $this->var; 
  }
$instance = new SimpleClass();
$instance->displayVar();#调用类里面的方法
$instance->var;#调用类里面的变量,不需要$符号
}
?> 

传参:

<?php
class SimpleClass
{
    public $s1;
    public $s2;
    public $var = 'a default value';
    public function __construct($a,$b){#构造函数:具有构造函数的类会在每次创建新对象时先调用此方法,所以非常适合在使用对象之前做一些初始化工作
        $this->s1=$a;#将参数值赋予类属性
        $this->s2=$b;
        }

$instance = new SimpleClass('a','b');#实例化对象,且输入参数
}
?>

8、包含文件

包含外部文件,通过include或require包含了外部的php文件可以调用其他php文件内的属性方法。

vars.php
<?php
$color = 'green';
$fruit = 'apple';
?>

test.php
<?php
echo "A $color $fruit"; // A
include 'vars.php';
echo "A $color $fruit"; // A green apple
?> 

include_once和 include语句类似,唯一区别是如果该文件中已经被包含过,则不会再次包含。如同此语句名字暗示的那样,只会包含一次。
require和include几乎一样,只在出现错误时有差别

9、通过php执行mysql语句

mysqli_query — 对数据库执行一次查询,同样可以执行其他类型的语句(查询、删除等)

<?php
$host='127.0.0.1';#数据库所在主机地址
$user='root';#用户名
$pwd='root';#用户密码
$dbname='php10';#所要连接的数据库名称

$db=new mysqli($host,$user,$pwd,$dbname);
#mysqli需要有四个参数:主机地址,用户名,用户密码,数据库。这个语句可以连接到数据库

if($db->connect_errno<>0)
{#在连接数据库失败时提示
  echo "连接失败";
  echo $db->connect_error;
}
 $db->query("SET NAMES UTF8");
#设置数据传输编码为UTF-8,没有设置很容易出现乱码问题

$content=1;
$user="user";
$intime=2131412;
$db->query( "INSERT INTO msg(content,user,intime) VALUES('{$content}','{$use}','{$intime}')" );
#将数据插入数据库中,数据可以是变量

$is = $db->query($sql);
if($is==true){#判断是否插入成功
  echo '插入成功';
}else{
  echo '插入失败';
}
?>

10、从mysql获得数据
使用query调用mysql语句进行查询并从返回值取得结果
mysqli_result是mysqli获得的结果集,是一个类。当运行失败时,只会得到一个false的布尔值

$sql="SELECT * FROM msg ORDER BY id DESC";
$mysqli_result=$db->query($sql);#$db是实例化的mysqli
$row=$mysqli_result->fetch_array(MYSQLI_ASSOC) ;
#fetch_array是mysqli类中的方法,可以返回数组,可以取出一个结果。不断调用fetch_array()方法会依次显示其他的记录,如果没有记录就会返回null,可以通过while循环取出所有记录。MYSQLI_ASSOC表示不取出数组索引。
echo $row['id'];#根据数组的索引调用数据

#使用while取出所有的数据到二维数组
$rows=[];
while($row = $mysqli_result -> fetch_array(MYSQLI_ASSOC) ){
    $rows[ ]=$row;
#表示自动生成二维数组的键。也可以指定:$rows[$row['id']]表示用$row['id']作为键/索引
}
#gbook.php
<?php
$host='127.0.0.1';
$user='root';
$pwd='root';
$dbname='php10';
$db=new mysqli($host,$user,$pwd,$dbname);

if($db->connect_errno<>0)
{
  echo "连接失败";
  echo $db->connect_error;
}
 $db->query("SET NAMES UTF8");

$sql="SELECT * FROM msg ORDER BY id DESC";
$mysqli_result=$db->query($sql);
if($mysqli_result ===false){
  echo "SQL错误";
  exit;
}
$rows=[];
while($row = $mysqli_result -> fetch_array(MYSQLI_ASSOC) ){
    $rows[ ]=$row;
}
?>
<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8"/>
    <title>留言板</title>
    <style>
    .wrap{
      width:600px;
      margin:0px auto;
     }
    .add{overflow:hidden;}
    .add .content{
      width:598px;
      margin:0;
      padding:0;
    }
    .add .user{
      float:left;
    }
    .add .bth{
      float:right;
    }
    .msg{
      margin:20px 0px;
      background:#ccc;
      padding:5px;
     }
    .msg .info{
      overflow:hidden;
     }
    .msg.user{
      float:left;
      color:blue;
    }
    .msg .time{
      float:right;
      color:#999;
    }
    .msg .content{
      width:100%;
     }
    </style>
  </head>
  <body>
    <div class='wrap'>
      <div class='add'>
      <form action="save.php" method="post">
        <textarea class='content' cols='50' rows='5'></testarea>
        <input class='user' type='type'/>
        <input class='btn' type='submit' value='发表留言'/>
      </form>
      </div>
      <?php
        foreach($rows as $row){
      ?>
      <div class='content'>
        留言内容
      </div>
    </div>
   <div class='msg'>
    <div class='info'>
      <span class='user'><?php echo $row['user'];?></span>
      <span class='time'><?php echo date("Y-m-d H:i:s", $row['intime']);?></span>
     </div>
    <div class='content'>
      <?php echo $row['content'];?>
    </div>
  </div>
 <?php
    }
 ?>
</div>
</body>
</html>

实战代码

#input.php
class input{
    function post($content){
        if($content == ''){
            return false;
          }
    $n=['张三','李四','王五'];
    foreach($n as $name){
        if($content == $name){
            return false;
            }
      }
  return true;
}
#connect.php,预先设定数据库链接参数和数据传输编码
<?php
$host='127.0.0.1';
$user='root';
$pwd='root';
$dbname='php10';

$db=new mysqli($host,$user,$pwd,$dbname);
if($db->connect_errno<>0)
{
    die("连接数据库失败";)
}

 $db->query("SET NAMES UTF8");#设定数据传输编码方式
# save.php
<?php
include('input.php');
include('connect.php');

$content = $_POST['content'];
$user = $_POST['user'];

$input = new input();

#调用函数,检查留言内容和留言人信息
$is = $input->post($content);
if($is==false){
 die("留言内容不正确");
}
$is = $input->post($user);
if($is==false){
 die("留言人信息不正确");
}

#将数据输入库中
$time =time();
$sql=query( "INSERT INTO msg(content,user,intime) VALUES('{$content}','{$user}','{$time}')" );
$is = $db->query($sql);
#var_dumb($is);
header("location:gbook.php");#跳转到gbook.php
?>
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 200,302评论 5 470
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 84,232评论 2 377
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 147,337评论 0 332
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,977评论 1 272
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,920评论 5 360
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,194评论 1 277
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,638评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,319评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,455评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,379评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,426评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,106评论 3 315
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,696评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,786评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,996评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,467评论 2 346
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,043评论 2 341

推荐阅读更多精彩内容