用php编写我的第一段代码:hello world
一、php环境的搭建
在编写php前,先搭建php环境,我选择了一站式安装软件WampServer,WampServer的下载地址:http://www.wampserver.com/
WampServer的最新版本2.5内置:
Apache 2.4.9
PHP 5.5.12
MySQL 5.6.17
安装也非常简单,一路下一步,搞定!安装成功以后,访问http://localhost/会显示如下内容:

二、php开发框架选择
php的第三方开发框架有很多,我通过对比,选择了一款简单容易操作的框架thinkphp,thinkphp的官方网站为:http://www.thinkphp.cn/
thinkphp的最新版本为5.0,不过我这里选择了应用比较广泛的3.2.3,官方提供了两个版本的下载,一个是核心版,另一个是完整版。看别人的意思就是高手用核心版,普通开发人员用完整版,作为一个小菜,我选择完整版。
我的wamp安装在D:\Program Files\wamp目录,这里我把thinkphp目录解压到D:\Program Files\wamp\www\thinkphp目录下,访问http://localhost/thinkphp,如果出现如下内容,表示thinkphp安装成功:

三、用thinkphp编写hello world
访问到thinkphp的首页面后,thinkphp会自动在thinkphp/Application目录下创建Home文件夹,并在Home文件夹下创建一系列的文件

我们刚才访问到的首页,其实就是在访问thinkphp/Application/Home/Controller/IndexController.class.php
下面我们来写我们自己的代码。
在thinkphp/Application/Home/Controller/目录下创建Demo1Controller.class.php文件,内容如下:
<?php
namespace Home\Controller;
use Think\Controller; class Demo1Controller extends Controller {
public function index(){
echo 'hello world';
}
}
对应的访问地址为:http://localhost/thinkphp/index.php/Home/Demo1/index
激动人心的时刻出现了,那就是我的第一段php代码:hello world出现了

访问地址的规则为http://域名/项目名/入口文件/模块名/方法名/键1/值1/键2/值2
index.php 为入口文件
Home/Demo1 为模块名
index为方法名
貌似是这么对应的?暂且认为是这样的吧。
反正至少可以庆祝一下了,用php写出了自己的hello world
四、以MVC的方式展示hello world
把以上的代码稍作修改,把后台代码放在Controller中,视图展示放在View中
Demo1Controller.class.php代码修改如下:
<?php
namespace Home\Controller;
use Think\Controller; class Demo1Controller extends Controller {
public function index(){
echo 'hello world';
} public function test1(){
$this->assign('name','hello world');
$this->display();
}
}
然后在thinkphp/Application/Home/View/目录下创建Demo1文件夹,Demo1文件夹下创建文件test1.html文件,内容如下:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Demo1</title>
</head>
<body>
{$name}!
</body>
</html>
对应的访问地址为:http://localhost/thinkphp/index.php/Home/Demo1/test1
这样,以MVC的方式显示hello world的代码就已经完成了。
用php编写我的第一段代码:hello world的更多相关文章
- shell编程学习笔记(一):编写我的第一段代码
目前在学习Shell编程,我会把我的学习笔记记录在这里.大神可以直接略过~ 嗯,第一段代码,肯定是要输出Hello World了~ 以下蓝色字体的内容为linux命令,红色字体的内容为输出的内容: # ...
- 初学Java,第一段代码
public class myapp { public static void main(String[] args) { // TODO Auto-generated method stub Sys ...
- 我的第一段ionic代码
ionic是基于angularjs的前端框架,用于实现移动app. 下面是第一段代码,先贴代码,有时间再整理: demo1.htm <!DOCTYPE html> <html ng- ...
- HTML5 & CSS3初学者指南(1) – 编写第一行代码
介绍 网络时代已经到来.现在对人们来说,每天上网冲浪已经成为一种最为常见的行为. 在网页浏览器中输入一段文本地址,就像http://www.codeproject.com,等待一下,网页就加载到浏览器 ...
- python学习笔记1--python简介和第一行代码编写
一.什么是python? python是一种面向对象,解释型语言,它语法简介,容易学习.本节博客就来说说本人学习python的心得体会. 二.python环境安装 目前python版本有python2 ...
- 我的第一段jQuery代码
说起 jQuery,很多人可能觉得,不算什么,就是个js类库.而,对于我,下面这几行代码,是一个新的开始. 多年来,我一直在使用MooTools ,他面向对象,写起来结构清晰分明,都是在原生js的基础 ...
- 编写更好的C#代码
引言 开发人员总是喜欢就编码规范进行争论,但更重要的是如何能够在项目中自始至终地遵循编码规范,以保证项目代码的一致性.并且团队中的所有人都需要明确编码规范所起到的作用.在这篇文章中,我会介绍一些在我多 ...
- 用Flow编写更好的js代码
关于本文: 原文地址 翻译地址 译者:野草 本文发表于前端早读课[第897期] 你是否经常在debug那些简单可避免的bug?可能你给函数传参的时候搞错了参数的顺序,或者本来应该传个Number类型的 ...
- 第一行代码:以太坊(2)-使用Solidity语言开发和测试智能合约
智能合约是以太坊的核心之一,用户可以利用智能合约实现更灵活的代币以及其他DApp.不过在深入讲解如何开发智能合约之前,需要先介绍一下以太坊中用于开发智能合约的Solidity语言,以及相关的开发和测试 ...
随机推荐
- 深入理解javascript作用域系列第五篇
前面的话 对于执行环境(execution context)和作用域(scope)并不容易区分,甚至很多人认为它们就是一回事,只是高程和犀牛书关于作用域的两种不同翻译而已.但实际上,它们并不相同,却相 ...
- SPOJ375 Query on a tree 【倍增,在线】
题目链接[http://www.spoj.com/problems/QTREE/] 题意:给出一个包含N(N<=10000)节点的无根树,有多次询问,询问的方式有两种1.DIST a b 求a ...
- UOJ #30. [CF Round #278] Tourists
UOJ #30. [CF Round #278] Tourists 题目大意 : 有一张 \(n\) 个点, \(m\) 条边的无向图,每一个点有一个点权 \(a_i\) ,你需要支持两种操作,第一种 ...
- [BZOJ4785][ZJOI2017]树状数组(概率+二维线段树)
4785: [Zjoi2017]树状数组 Time Limit: 40 Sec Memory Limit: 512 MBSubmit: 297 Solved: 195[Submit][Status ...
- [BZOJ1492][NOI2007]货币兑换Cash(斜率优化+CDQ分治)
1492: [NOI2007]货币兑换Cash Time Limit: 5 Sec Memory Limit: 64 MBSubmit: 5838 Solved: 2345[Submit][Sta ...
- 【并查集】【枚举倍数】UVALive - 7638 - Number of Connected Components
题意:n个点,每个点有一个点权.两个点之间有边相连的充要条件是它们的点权不互素,问你这张图的连通块数. 从小到大枚举每个素数,然后枚举每个素数的倍数,只要这个素数的某个倍数存在,就用并查集在这些倍数之 ...
- bzoj 4034: [HAOI2015]T2
4034: [HAOI2015]T2 Description 有一棵点数为 N 的树,以点 1 为根,且树点有边权.然后有 M 个 操作,分为三种: 操作 1 :把某个节点 x 的点权增加 a . 操 ...
- App图标生成器的实现,附源码
背景 网上各种生成app图标的网站和工具,感觉还是用自己写的心里畅快点,所以花了1个小时自己写了个.按照网上给的图标尺寸规范把所有尺寸的都生成了. 建了一个讨论群,533838427.很明显是针对独立 ...
- hdu 3572 资源分配
资源分配,每个时间点有m个机器可用,要将这资源分配给n个任务中的一些,要求每个任务在自己的时间范围中被分配了p[i]个资源,建图: 建立源,与每个时间点连边,容量为m,每个任务向其对应的时间段中的每个 ...
- BSGS算法+逆元 POJ 2417 Discrete Logging
POJ 2417 Discrete Logging Time Limit: 5000MS Memory Limit: 65536K Total Submissions: 4860 Accept ...