PHP基础

前天帮公司做oDesk的PHP测试,才发现原来基础这么重要,很多很简单的题都需要查资料才知道答案,于是决定重温下PHP知识.

一、数据类型

php有以下几个数据类型:

1.Integer整型

就是各种整型数字,$a = 15;$b = 27;$c = 0x24;等

2.Float浮点型

各种小数类型的数据,$a = 0.125;$b = 17.0E - 3;等

3.String字符串型

各种字符串数据,$a = "hello";

输入长一点的字符串可以这样

 

$foo = <<<EOD
  This is a "multiline" string
  assigned using the 'heredoc' syntax.
EOD;

 

4.Array数组类型

php中最重要的数据类型就是数组,其结构也可以千变万化.定义一个数组:

$array = array(
         '0' => array(
                   'name' => 'David',
             'nickname' => 'kingheaven'
         ),
         '1' => array(
                   'name' => 'Shieh',
             'nickname' => 'kingheaven'
         )
);

 这里定义了一个2维数组,使用里面的数据的话,可以这样:<?php echo $array['0']['name']; ?>

5.Boolen布尔型

只有2个可选值,true和false

6.Null类型

不存在用Null来表示(Null不区分大小写)

7.Class对象类型

用一个例子来表示

 

class test {
      var $str = "Hello World";
           function init($str) {
                $this->str = $str;
           }
}

 

引用这个类里面的值用以下代码:

$class = new test;echo $class->str;

 

二、数据类型的转换

使用(int),(float),(string),(array)等将数据转换成相应类型,比如:

$a = (int)"123";$b = 123;$c = (string)$b;

 

三、面向对象基础

1.使用new来初始化对象:

class test {
    function __construct() {
        echo "hello";
    }
}

$a = new test;

2.使用extends来继承类

class a {
    function __construct() {
        echo "hello";
    }
}

class b extends a {
    function __construct() {
        echo "hello again";
    }
}

$b = new b;

3.使用__autoload()来自动加载对象

function __autoload($class_name) {
    require_once $class_name . '.php';
}

$obj  = new MyClass1();
$obj2 = new MyClass2();

这个例子中,$obj和$obj2会自动从MyClass1.php和MyClass2.php中去查找MyClass1和MyClass2类,如果出错,会抛出异常.

4.__construct()构造函数和__destruct()析构函数

和所有面向对象语言中的构造函数和析构函数一样,在类初始化和销毁的时候自动运行,只有一点需要注意,这个2个函数都没有返回值,而且不能尝试去抛出异常

5.访问控制public,protected和private

规则如下, 由 public 所定义的类成员可以在任何地方被访问;由 protected 所定义的类成员则可以被其所在类的子类和父类访问(当然,该成员所在的类也可以访问);而由 private 定义的类成员则只能被其所在类访问.需要注意的是,如果未指定访问控制,则默认为public.

6.范围解析操作符::

要操作不在一个类内的函数或者变量,可以使用::来解析

<?php
class MyClass {
    const CONST_VALUE = 'A constant value';
}

echo MyClass::CONST_VALUE;
?>

在类的外面使用类名加::来表示调用这个类中的变量或者方法.如果想在类中调用父类的方法呢,可以这样

class MyClass
{
    protected function myFunc() {
        echo "MyClass::myFunc()\n";
    }
}

class OtherClass extends MyClass
{
    // 覆盖父类中的方法
    public function myFunc()
    {
        // 但仍然可以调用已被覆盖的方法
        parent::myFunc();
        echo "OtherClass::myFunc()\n";
    }
}

使用parent表示要使用父类的方法或者变量.要调用本类中的方法或者变量,可以用self::或者$this->.

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值