首页 > 代码库 > PHP入门

PHP入门

索引数组初始化

PHP有两种数组:索引数组、关联数组。

索引和关联两个词都是针对数组的键而言的。

先介绍下索引数组,索引数组是指数组的键是整数的数组,并且键的整数顺序是从0开始,依次类推。

下面使用图来说明一下:

技术分享

可以使用下面代码实现:

$fruit = array("苹果","香蕉","菠萝"); 注意数组的键是从0开始的。可以使用print_r($fruit);语句输出数组键及对应的值。

索引数组赋值

索引数组赋值有三种方式:

第一种:用数组变量的名字后面跟一个中括号的方式赋值,当然,索引数组中,中括号内的键一定是整数。比如,$arr[0]=‘苹果‘;

 

第二种:用array()创建一个空数组,使用=>符号来分隔键和值,左侧表示键,右侧表示值。当然,索引数组中,键一定是整数。比如,array(‘0‘=>‘苹果‘);

 

第三种:用array()创建一个空数组,直接在数组里用英文的单引号或者英文的双引号"赋值,数组会默认建立从0开始的整数的键。比如array(‘苹果‘);这个数组相当于array(‘0‘=>‘苹果‘);

访问索引数组内容

有的时候我们需要把数组中的内容也就是值取出来该怎么办呢?用数组变量的名字后跟的中括号中的键,来访问数组中的值。

例如:

$fruit = array(‘苹果‘,‘香蕉‘);$fruit0 = $fruit[‘0‘];print_r($fruit0);//结果为苹果

上面代码的作用:先把一个数组$fruit第一个值取出来然后赋给一个变量$fruit0,最后输出变量值。

for循环访问索引数组里的值

for循环可以将数组里的所有值都访问到,下面我们展示下,用for循环访问索引数组里的值。

例如:

$fruit=array(‘苹果‘,‘香蕉‘,‘菠萝‘);for($i=0; $i<3; $i++){    echo ‘<br>数组第‘.$i.‘值是:‘.$fruit[$i];}

foreach循环访问索引数组里的值

foreach循环可以将数组里的所有值都访问到,下面我们展示下,用foreach循环访问索引数组里的值。

例如:

$fruit=array(‘苹果‘,‘香蕉‘,‘菠萝‘);foreach($fruit as $k=>$v){    echo ‘<br>第‘.$k.‘值是:‘.$v;}

关联数组初始化

回顾下前面介绍的内容,PHP有两种数组:索引数组、关联数组。

索引和关联两个词都是针对数组的键而言的。

先介绍下,关联数组是指数组的键是字符串的数组。

技术分享

可以使用下面代码实现:

$fruit = array(    ‘apple‘=>"苹果",    ‘banana‘=>"香蕉",    ‘pineapple‘=>"菠萝"); 

可以使用print_r($fruit);语句输出数组键及对应的值。

关联数组赋值

关联数组赋值有两种方式:

第一种:用数组变量的名字后面跟一个中括号的方式赋值,当然,关联数组中,中括号内的键一定是字符串。比如,$arr[‘apple‘]=‘苹果‘;

 

第二种:用array()创建一个空数组,使用=>符号来分隔键和值,左侧表示键,右侧表示值。当然,关联数组中,键一定是字符串。比如,array(‘apple‘=>‘苹果‘);

访问关联数组内容

用数组变量的名字后跟中括号+键的方式来访问数组中的值,键使用单引号或者双引号括起来。

比如:

$fruit = array(‘apple‘=>"苹果",‘banana‘=>"香蕉",‘pineapple‘=>"菠萝"); $fruit0 = $fruit[‘banana‘];print_r($fruit0);

上面代码的作用:先把一个数组$fruit中键为banana字符串的值取出来然后赋给一个另一个变量$fruit0,最后输出变量值。

foreach循环访问关联数组里的值

foreach循环可以将数组里的所有值都访问到,下面我们展示下,用foreach循环访问关联数组里的值。

例如:

$fruit=array(‘apple‘=>"苹果",‘banana‘=>"香蕉",‘pineapple‘=>"菠萝");foreach($fruit as $k=>$v){    echo ‘<br>水果的英文键名:‘.$k.‘,对应的值是:‘.$v;}

自定义函数

PHP内置了超过1000个函数,因此函数使得PHP成为一门非常强大的语言。大多数时候我们使用系统的内置函数就可以满足需求,但是自定义函数通过将一组代码封装起来,使代码进行复用,程序结构与逻辑更加清晰。

PHP函数的定义方式:
    1.使用关键字“function”开始
    2.函数名可以是字母或下划线开头:function name()
    3.在大括号中编写函数体:

function name() {    echo ‘Eric‘;}

通过上面的步骤,我们就定义了一个简单的函数,当我们需要的时候,就可以在代码中调用这个函数,调用方法为函数名+参数,例如:name();

自定义函数

PHP内置了超过1000个函数,因此函数使得PHP成为一门非常强大的语言。大多数时候我们使用系统的内置函数就可以满足需求,但是自定义函数通过将一组代码封装起来,使代码进行复用,程序结构与逻辑更加清晰。

PHP函数的定义方式:
    1.使用关键字“function”开始
    2.函数名可以是字母或下划线开头:function name()
    3.在大括号中编写函数体:

function name() {    echo ‘Eric‘;}

通过上面的步骤,我们就定义了一个简单的函数,当我们需要的时候,就可以在代码中调用这个函数,调用方法为函数名+参数,例如:name();

函数的参数

PHP的函数可以没有参数,也可以有若干个参数,多个参数称之为参数列表,采用逗号进行分割,参数类似于一个变量,调用时用来传递数据到函数体中。通过传递参数可以使函数实现对参数的运算,得到我们想要的结果。

参数的变量名可以自由指定,但最好能够表达相关的意思,常用的设定参数的方法为:

function sum($a, $b) {     return $a+$b; }

返回值

使用return关键字可以使函数返回值,可以返回包括数组和对象的任意类型,如果省略了 return,则默认返回值为 NULL。

function add($a) {    return $a+1;}$b = add(1);

返回语句会立即中止函数的运行,并且将控制权交回调用该函数的代码行,因此下面函数的返回值跟上面的函数是一样的。

function add($a) {    return $a+1;    $a = 10;    return $a+20;}$b = add(1);

函数不能返回多个值,但可以通过返回一个数组来得到类似的效果。

function numbers() {    return array(1, 2, 3);}list ($one, $two, $three) = numbers();

可变函数

所谓可变函数,即通过变量的值来调用函数,因为变量的值是可变的,所以可以通过改变一个变量的值来实现调用不同的函数。经常会用在回调函数、函数列表,或者根据动态参数来调用不同的函数。可变函数的调用方法为变量名加括号。

function name() {    echo ‘jobs‘;}$func = ‘name‘;$func(); //调用可变函数

可变函数也可以用在对象的方法调用上。

class book {    function getName() {        return ‘bookname‘;    }}$func = ‘getName‘;$book = new book();$book->$func();

内置函数

内置函数指的是PHP默认支持的函数,PHP内置了很多标准的常用的处理函数,包括字符串处理、数组函数、文件处理、session与cookie处理等。

我们先拿字符串处理函数来举例,通过内置函数str_replace可以实现字符串的替换。下面的例子将“jobs”替换成“steven jobs”:

$str = ‘i am jobs.‘;$str = str_replace(‘jobs‘, ‘steven jobs‘, $str);echo $str; //结果为“i am steven jobs”

另外一些函数是通过其他扩展来支持的,比如mysql数据库处理函数,GD图像处理函数,邮件处理函数等,PHP默认加载了一些常用的扩展库,我们可以安装或者加载其他扩展库来增加PHP的处理函数。

后面的章节我们会介绍更多其他的内置函数及用法。

判断函数是否存在

当我们创建了自定义函数,并且了解了可变函数的用法,为了确保程序调用的函数是存在的,经常会先使用function_exists判断一下函数是否存在。同样的method_exists可以用来检测类的方法是否存在。

function func() {}if (function_exists(‘func‘)){    echo ‘exists‘;}

类是否定义可以使用class_exists。

class MyClass{}// 使用前检查类是否存在if (class_exists(‘MyClass‘)) {    $myclass = new MyClass();}

PHP中有很多这类的检查方法,例如文件是否存在file_exists等。

$filename = ‘test.txt‘;if (!file_exists($filename)) {    echo $filename . ‘ not exists.‘;}
 

类和对象

类是面向对象程序设计的基本概念,通俗的理解类就是对现实中某一个种类的东西的抽象, 比如汽车可以抽象为一个类,汽车拥有名字、轮胎、速度、重量等属性,可以有换挡、前进、后退等操作方法。

通常定义一个汽车类的方法为:

class Car {    $name = ‘汽车‘;    function getName() {        return $this->name;    }}

类是一类东西的结构描述,而对象则是一类东西的一个具体实例,例如汽车这个名词可以理解为汽车的总类,但这辆汽车则是一个具体的汽车对象。

对象通过new关键字进行实例化:

$car = new Car();echo $car->getName();

类与对象看起来比较相似,但实际上有本质的区别,类是抽象的概念,对象是具体的实例。类可以使程序具有可重用性。

创建一个对象

上一节,我们使用汽车举例来认识了类与对象,本节我们来了解一下类的定义方法,类通过关键字class开头,然后是类名与花括号,在花括号中定义类的属性与方法。类名必须是字母或下划线开头,后面紧跟若干个字母、数字或下划线,类名最好能够表意,可以采用名词或者英文单词。

//定义一个类class Car {    //定义属性    public $name = ‘汽车‘;    //定义方法    public function getName() {        //方法内部可以使用$this伪变量调用对象的属性或者方法        return $this->name;    }}

要创建一个类的实例,可以使用new关键字创建一个对象。

$car = new Car();//也可以采用变量来创建$className = ‘Car‘;$car = new $className();

PHP入门