kingheaven 发表于 2013-1-27 04:46:00

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 = <<<EODThis is a "multiline" stringassigned 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.范围解析操作符::
要操作不在一个类内的函数或者变量,可以使用::来解析
<?phpclass 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->.
 
页: [1]
查看完整版本: PHP基础