PHP开发入门

1. 下载软件

PHP    vc11 (VS2012)  http://windows.php.net/download/

Apache   http://www.apache.org/dyn/closer.cgi/httpd/binaries/

mySQL   http://www.mysql.com/downloads/

或者直接下载xampp (包括PHP, apache, MySQL) https://sourceforge.net/projects/xampp/files/ (这个最全且简单)


2. 配置

Apache 

httpd.conf     

DocumentRoot 文档根目录 DocumentRoot "C:/xampp/htdocs"   

如果新建的php文件index.php放在这个目录,则http://localhost/index.php  (http://127.0.0.1/index.php)


PHP

php.ini


3. hello world例子

<html>
  <head>
    <title> first program</title>
  </head>
  <body>
    <?php
        echo "hello world";
    ?>
   </body>
</html>

保存为1.php

http://localhost/1.php


4.  数据类型

string :字符串, 要用单引号或双引号,特殊符号加转义符号\
integer :整型
double (floating point number):双精度型(浮点型)
boolean : 布尔型  true/false
array :数组
object :对象

变量名要以“$”开头,且区分大小写


5. 运算符

算术运算符:+、-、*、/、%、++、--
字符串运算符:. 
赋值运算符:=、+=、-=、*=、/=、%=、.=
位运算符:& 、|  、^  、<< 、>> 、~ 
逻辑运算符:&& (And) 、|| (Or) 、xor (Xor) 、! (Not)
比较运算符:< 、> 、<= 、>= 、== 、===、!= 
其他运算符:$、& 、@ 、-> 、=>、? : 

变量名要以“$”开头,且区分大小写

6. 条件分支语句 循环语句

6.1 条件分支语句

if (expr) {
  ...
} else {
  ...
}

switch (expr) {
  case value1:
    ...
    break;
  case value2:
    ...
    break;
    ...
    default:
    ...
    break;
}


6.2 循环语句

while (expr) {
  ...



do {
  ...
} while (expr);


for (expr1; expr2; expr3) {
  ...
}


7. 函数

传值与传址(引用)区别,传址(引用)时在行参和实参前面都要加上&, 实参值在调用前后会变化

传值

function  add($num1, $num2)

{

   return ($num1+$num2);

}

$num = add(1+2);


传址(引用)

function refexample(&$num)

{

   $num = $num+1;

}

$m = 1;

refexample(&$m);

echo "\$m=$m <br>";


8. 数组

$age = array(1, 2, 3, 4, 5);

$name = array("John", "Jack", "Tom");

echo $age[0]   ->1

print_r($name)


8.1   数组合并

$arr1 = array('Earth','Venus');

$arr2 = array(4=>'Mars',5=>'Jupiter',6=>'Saturn');

 

$planet = array_merge($arr1,$arr2);


8.2 数组遍历

foreach(array_name as $value) 

   statement; 

foreach(array_name as $key => $value) 

   statement; 


8.3 数组函数

count() 数组个数

current()当前指针指向的index、reset()指向index=0的那个、end()指向最后一个、next()下一个和prev()前一个

sort() 按字母顺序排序, 这个会删除原来数组值,重新按字母顺序生成新数组

rsort() 反向排序,这个会删除原来数组值,重新按字母顺序生成新数组

ksort() 按key排序,并且保持数组的原索引关系不变

asort() 按字母顺序排序,并且保持数组的原索引关系不变


9. 字符串处理函数

Ltrim()函数去除字符串左端的空格
Chop()函数与rtrim()函数作用相同,都是去除字符串右端的空格
Trim()函数去除字符串左右两端的空格
Strlen()函数输出字符串长度
Ucwords()函数将每个单词的首字母大写
Ucfirst()函数将整个字符串首字母大写
Strtoupper()函数将全部字母都大写
Strtolower()函数将所有字母都变成小写
Str_word_count()函数统计字符串中单词个数


int substr_count ( string haystack, string needle [, int offset [, int length]] )
用来统计一个字符串needle在另一个字符串haystack中出现的次数。该函数返回值是一个整数。有两个可选参数offset和length分别表示要查找的起点和长度。值得注意的是,offset是从0而不是从1开始计算的 


string strstr ( string haystack, string needle )
用来查找一个子串needle在一个字符串haystack中第一次出现的位置,并返回从此位置开始的字符串。
string strrchr ( string haystack, string needle )
查找一个字符needle在一个字符串haystack中最后一次出现的位置并返回从此位置开始之后的字符串。 


mixed str_replace ( mixed search, mixed replace, mixed subject [, int &count] )
将subject中的所有search替换成replace,并把替换的次数存放在count中


string substr ( string string, int start [, int length] )
返回一个字符串中从指定位置开始指定长度的子串。参数string为原始字符串,start为截取的起始位置(从0开始计),可选参数length为要截取的长度


array explode ( string separator, string string [, int limit] )
用来将一个字符串按照某个指定的字符分割成多段,并将每段安顺序存入一个数组中。该函数的返回值就是一个数组。separator参数为分割符,可以是一个字符串,也可以是单个字符。string为要处理的字符串。参数limit为可选,如果设置了limit,则返回的数组包含最多limit个元素,并且最后那个元素将包含 string 的剩余部分


array str_split ( string string [, int split_length] )
将一个字符串以一定长度为单位分割成多段,并返回由每一段组成的数组。str_split()函数不是以某个字符串为分割依据,而是以一定长度为分割依据。参数string为要分割的字符串,可选参数length设置分割的单位长度


10. 日期时间函数

string date(string format, int timestamp)

返回指定格式的日期时间,timestamp可省略,省略时取当前时间

date("Y/M/d")


array getdate(int timestamp)

转化timestamp时间到某日期时间格式


int mktime ( int hour , int minute, int second , int month, int day, int year)

转化为Unix timestamp格式


strtotime() 函数将某格式的日期时间描述解析为 Unix 时间戳

strtotime("now")  

strtotime("3 October 2005")


11. 文件目录操作函数

11.1 文件操作函数

11.1. 1 打开

resource fopen ( string filename, string mode [, bool use_include_path ] )

mode有r,w,a,x, r+,w+,a+,x+

11.1.2  关闭

bool fclose ( resource handle )

11.1.3 读

string fread( int handle, int length )

string fgets( int handle, int length) 读取一行

string fgetc(int handle)  读取一个字符

11. 1.4 写

int fwrite ( resource handle, string string, int length)
int fputs(resource handle, string str, int length)

11.2 目录操作函数 

11.2.1  改变目录

string getcwd ( void ) 返回当前工作目录

bool chdir ( string directory ) 改变当前目录
bool chroot ( string directory ) 改变根目录

11.2.2 生成dir
new dir(sting directory) 生成一个dir对象
11.2.3 打开目录
resource opendir ( string path )打开目录

11.2.4 关闭目录
void closedir ( resource dir_handle ) 关闭目录

11.2.5 读取目录
string readdir ( resource dir_handle ) 读取目录
void rewinddir ( resource dir_handle ) 回到目录开头
array scandir ( string directory, int sorting_order) 列出指定路径中的文件和目录


12. 对象

声明类
class 类名(参数类表){
private/protected/public类变量
        private/protected/public类成员函数
}


$对象名=new 类名(参数类表);


构造函数是类中的一个特殊函数,这个函数的函数名与类名相同,而且在对象生成时会自动调用
用构造函数实现类的初始化
析构函数时构造函数的相反,在对象引用结束时,自动会调用析构函数。


继承
class  派生类(子类)名   extends    父类名
使用parent 和self进行属性和方法的调用时,需要使用范围解析操作符:::
parent::functionName(); 


多态
当派生类(子类)中的某个函数的函数名与其父类中的某个函数名重复时,系统在派生类对象中会自动选用派生类中,这就是类的多态


static.静态属性和方法
静态属性和类的常量一样,只属于类本身,通过static来定义。
方法也是一样的。


final关键字
如果我们希望父类中的函数或者属性不想让子类重写,就可以用final进行修饰





current()reset()end()next()prev()

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值