PHP的入门,PHP入门
在研究TeamTalk的时候,才发现,原来我只会用Java,H5...对于c++,php基本没怎么接触过。所以写了本文来叙述一下我的学习之路。由于本人是在工作中遇到这些问题的,所以必须要迅速解决,不可能像上学,培训那样,花好几个月学习。从学习,到撰写本文,本人仅用了一下午(ps:老板不在,你们懂得)。本人是参考 网易云课堂 上的 王亮大佬的 “十天学会PHP(第六版)”这一系列视频教程的,这个视频教程免费。链接如下:http://study.163.com/courses-search?keyword=%E5%8D%81%E5%A4%A9php#/?ot=5
由于本人有一定的基础,因此只撰写和php有关的内容,html,css,sql语句等如果读者不知道,请自行学习。文中部分内容在下面的案例中已经体现,不再多做赘述。
=====================华丽的分割线=========================
好了,步入正题:
一、开发环境
下载安装 SublimeText3,xampp这两个,其中xampp是软件包,包括tomcat,mysql......
二、PHP中的数据类型
9种数据类型以及定义的语法
$a1 = 1;//int
$a2 = 1.5;//float
$a3 = true;//boolean
$a4 = 'string';//字符串,可以使用双引号
$a41 = "string$a1";//双引号可以识别里面的变量
$a5 = array(1,2,3);//数组
$a6 = new stdClass;//对象
$a8 = null;
Callback / Callable 类型
有关数组类型的:
//索引数组
$arr1 = [1,2,3,[1,1,1]];//可以多维
//var_dump($arr1);//键值对
//关联数组
$arr2 = [
'a' => 1,
'b' => 2,
'c' => 3
];
//数组的增删改查
//添加
$arr2['d'] = 4;
//修改
$arr2['b'] = 22;
//删除
unset($arr2['c']);
//查找
echo $arr2['a'];
//返回数组中部分或所有键名
var_dump(array_keys($arr2));
三、运算符
php种的运算符和java种基本一致,此处不做赘述,如果没有编程语言基础的,请自行 学习。这里主要就说一下几个容易被忽略的。
=== 这个是全等于,即不止值相等,数据类型也相等。
<> 这个是不等于,在java种表示为!=
. 这个是用来做字符串拼接的,不可以像java那样直接用 + 来做字符串拼接
.= 这个就类似于java字符串拼接中的+=的写法
-> 这个可以用来调用方法等
四、流程控制语句
if,switch这两个和java里面用法一致
for,while,foreach也和java里面用法一致
五、面向对象
面向对象的概念在此不做赘述,我们只谈实现。
include:实现。包含其他php文件,然后可以直接执行其他php文件中的方法。PHP中也可以继承。代码举例如下:
test8.php:
<?php
//一个类
class name{
public $s1 = 0;
public $s2 = 1;
//魔术方法,类似于Java中的构造函数,在创建对象的时候调用
public function __construct($a,$b){
echo 123;
$this->s1 = $a;
$this->s2 = $b;
//var_dump($a,$b);
}
}
$name = new name('a','b');
//$name -> s1(12);
?>
test:
<?php
include ('test8.php');
//require和include几乎一样,只是失败了,require不会再执行。而include会继续执行。include_once可以多次包含同样一个文件,include不行。
echo 'hello world';
//单行注释,标准
#单行注释
/*
多行注释
*/
$a="php";
echo $a;
//在外面可以写html内容
//php在服务器解析后也是html内容
?>
在此值得说一下的是,php里面也有构造函数,作用和java类似,都是实例化对象的时候调用。
代码如下参考上面test8。
=============================华丽的分割===================================
好了,到此,基本对php有了一定的了解了,起码不会看的一脸懵。下面是视频教程中的一个小案例,留言本小案例:
在这个案例中,主要讲解的是:
1、如何从页面取值
2、php对数据库的操作
3、如何将查询得到的结果返回到页面
全部代码如下:
gbook.php:
<?php
$host = '127.0.0.1';
$user = 'root';
$pwd = '123456';
$dbname = 'php10';
$db = new mysqli($host,$user,$pwd,$dbname);
if($db -> connect_errno<>0){
echo "连接失败";
echo $db -> connect_errno;
exit;
}
$db->query("set names utf8");
$sql = 'select * from msg order by id desc';
$mysqli_result = $db->query($sql);
//var_dump($mysqli_result);
if($mysqli_result===false){
echo 'sql错误';
exit;
}
while($row = $mysqli_result->fetch_array(MYSQLI_ASSOC)){
$rows[] = $row;
}
?>
<!DOCTYPE html>
<meta charset="utf-8">
<head>
<title>留言本</title>
<link rel="stylesheet" type="text/css" href="style.css">
</head>
<body>
<div class="wrap">
<!--发表留言-->
<div class="add">
<form action="save.php" method="post">
<textarea class="content" cols='50',rows='5' name="content"></textarea><br/>
<input class="user" type="text" name="user">
<input class="btn" type="submit" value="发表留言">
</form>
</div>
<!--查看留言-->
<?php
foreach ($rows as $row) {
# code...
?>
<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>
==========================================================================
style.css:
.wrap{
width:600px;
margin:0px auto;
}
.add{overflow: hidden;}
.add .content{
width:598px;
margin:0;
padding:0;
}
.add .user{
float:left;
}
.add .btn{
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%;
}
==========================================================================
input.php:
<?php
class input{
//定义函数检查留言内容
function post($content){
$n = ['张三','李四','王五'];
if($content == ''){
return false;
}
foreach ($n as $name) {
if($content == $name){
return false;
}
}
return true;
}
}
?>
==========================================================================
connect.php:
<?php
//将数据入库
$host = '127.0.0.1';
$dbuser = 'root';
$pwd = '123456';
$dbname = 'php10';
$db = new mysqli($host,$dbuser,$pwd,$dbname);
if($db->connect_errno<>0){
echo '连接失败';
}
//设置数据传输编码
$db->query("set names utf8");
?>
==========================================================================
save.php:
<?php
/*var_dump($_POST);
$content = $_POST['content'];
$user = $_POST['user'];
var_dump($content,$user);*/
include('input.php');
include('connect.php');
$content = $_POST['content'];
$user = $_POST['user'];
$n = ['张三','李四','王五'];
$input = new input();
$is = $input->post($content);
if($is == false){
die('留言内容数据不正确');
}
$is = $input->post($user);
if($is == false){
die('留言人数据不正确');
}
$time = time();
$sql = "insert into msg(content,user,intime) values('{$content}','{$user}','{$time}')";
$is = $db->query($sql);
if($is==true){
//echo '插入成功';
header("location:gbook.php");//回到gbook.php页面
}else{
echo '插入失败';
}
//获取结果
/*if($content == ''){
die("留言内容不能为空");//停止程序,输出信息
}
if($user == ''){
die("留言人不能为空");//停止程序,输出信息
}*/
/*foreach ($n as $name) {
if($user == $name){
die("禁止使用的用户名");
}
}*/
?>
==========================================================================
好了,至此,再回去看TeamTalk中的php代码,不至于一脸懵了。但是到此,也仅限于能看代码,基础稍好一点的能改改代码,要做到开发,是远远不够的。在今后的工作中遇到其他的技术,再继续码字吧。
PHP之友评论