码迷,mamicode.com
首页 > Web开发 > 详细

精进不休(1) php - 数据类型、变量、常量、函数、类、接口、特性

时间:2017-11-14 23:30:11      阅读:26      评论:0      收藏:0      [点我收藏+]

标签:his   函数   不能   对象   开头   source   包含   lsh   integer   

1.数据类型
php有八种基本的数据类型,包含了:
四种标量类型:boolean(布尔型)、integer(整型)、float(浮点型)、string(字符串)
两种复合类型:array(数组)、object(对象)
两种特殊类型:resource(资源)、NULL
要想知道某个变量是属于某个类型,可以使用gettype()函数,例如:

<?php
$a = 100;
echo gettype($a);  //integer

2.变量
php中定义变量以$开头,变量名首字母必须为字母(a-z A-Z),下划线(_),不能使用php的预定义关键字(if、else、switch、array、function、class、interface等),例如:

<?php
$a = 10;

变量包含了以下几种变量:
普通变量,例:$a = 10;
静态变量:使用static关键字标识的变量,必须定义在函数内部。函数执行完之后,变量值不会丢失,可用于递归调用
超全局变量:包含了$_GET、$_POST、$_REQUEST、$_FILES等等,详细介绍见PHP官网:http://www.php.net/manual/zh/language.variables.superglobals.php

3.常量
使用define()函数定义一个常量,注意常量的值只能定义为标量,例如:

<?php
define(‘API_VERSION‘, 3.1.2);   //定义API_VERSION常量

4.函数

  • 普通函数,例如:
<?php
//定义一个函数,函数名为test,有两个参数$a,$b
function test($a, $b)
{
    return $a + $b;
}
  • 匿名函数:其实就是没有名称的函数,函数可以赋值给变量。例如:
<?php
$func = function ($name) {
    return sprintf(‘hello %s‘, $name);
};

//使用一个变量作为函数名,然后向函数传入参数
echo $func(‘yunshu‘);  //hello yunshu
  • 回调函数
    很多PHP函数都会用到回调函数,例如array_map()和preg_replace_callback()等。例如:
<?php
function incrementNumber($number) {
    return $number+1;
}

//这里的第一个参数要求是一个回调函数,第二个参数是个数组。函数实现了
//对数组的每个元素加一的操作
$res = array_map(‘incrementNumber‘, [1,2,3]);//第一个参数也可以是一个匿名函数,例:function ($number) {return $num+1}
var_dump($res); //结果数组元素变为2,3,4

5.类、接口
使用类、接口能让代码更加有模块化。
下面是一个使用类、抽象类、接口的例子:

<?php

//使用接口定义一类方法。接口中不能定义成员变量(包含类静态变量)
interface IShop 
{ 
    public function buy($gid); 
    public function sell($gid); 
    public function view($gid); 
} 

//抽象类使用abstract标识,抽象出shop的共同的方法,子类可以对方法进行重写。
//要实现某接口,使用implements关键字。
abstract class BaseShop implements IShop 
{ 
    public function buy($gid) 
    { 
        echo(‘你购买了ID为 :‘.$gid.‘的商品‘); 
    } 

    public function sell($gid) 
    { 
        echo(‘你卖了ID为 :‘.$gid.‘的商品‘); 
    } 

    public function view($gid) 
    { 
        echo(‘你查看了ID为 :‘.$gid.‘的商品‘); 
    } 
} 

//继承父类,使用extends关键字
class BallShop extends BaseShop 
{ 
    protected $itme_id = null; 

    public function __construct() 
    { 
        $this->itme_id = 2314; 
    } 

    public function open() 
    { 
        $this->sell($this->itme_id); 
    } 
}

6.性状
性状(trait),是PHP5.4.0引入的概念。性状像类又像接口,把模块化的实现方式注入到多个无关的类中,促进了代码的重用。

<?php
trait Hello 
{
    public function sayHello() 
    {
        echo ‘Hello ‘;
    }
}

trait World 
{
    public function sayWorld() 
    {
        echo ‘World‘;
    }
}

class MyHelloWorld 
{
    //使用trait:将trait的属性和方法导入进来,就想类本身就有这个属性和方法一样。
    use Hello, World;

    public function sayExclamationMark() 
    {
        echo ‘!‘;
    }
}

$obj = new MyHelloWorld();
$obj->sayHello();
$obj->sayWorld();
$obj->sayExclamationMark();   //hello world!

今天就说到这里,明天说命名空间、自动加载、composer、数据库操作、错误异常...

欢迎关注公众号:云舒的自媒体~~~

精进不休(1) php - 数据类型、变量、常量、函数、类、接口、特性

标签:his   函数   不能   对象   开头   source   包含   lsh   integer   

(0)
(0)
   
举报
评论 一句话评论(0
0条  
登录后才能评论!
© 2014 mamicode.com 版权所有 京ICP备13008772号-2
迷上了代码!