您的位置:首页 > 编程语言 > PHP开发

php基础学习

2013-04-06 13:56 381 查看
php的使用在命令行 php -v 来显示当前的php版本

<?php

echo 'sthing...'

?> /*用来显示php执行的结果*/

常量的使用

define('VAR1', 100);

define('VAR2', 20);

使用:echo VAR1

一般变量定义:(这里前面要加上$)

$var1 = 10;

$var1 = 'ok man'

$var2 = 10.10;

$var1 = (int)$var2

--也可以这么用

$var2 = 10;

$var1 = 'var2'

echo $$var1 ==> echo $var2 ==> 10

函数作用域不同的是:

在函数内部可以定义全局变量(必须和全局变量使用相同命名规范)

在函数内部可以定义静态变量,作用于是函数内部,但多次调用时值可以变

超级全局变量

$GLOBALS

$_SERVER

$_GET, 通过get方法传递给该校本的变量

$_POST, 通过post方法传递给该校本的变量

$_COOKIE

$_FILES , 与文件上传相关的变量数组

$_ENV

$_REQUEST, 所有用户输入的变量,包括$_GET, $_POST, $_COOKIE

$_SESSION, 会话变量数组

==================变量操作符===========================

数学运算符合C相同

字符串操作符,有个 “.” ==>连接元算副

=== 恒等操作符,表示两边的值相等,并且必须是数据类型也要相等才可以

也有三元操作符 ?:

执行操作符,其实就是一对 ``,跟shell中的执行操作符相同,例如:

$out = `ls -a`

echo '<pre>'.$out'.</pre>';

!! 数组的逻辑比较操作符可以和单个元素的相同,包括:!=, !==, ===两个数组的元素都得相同并且顺序得一致, <>...

instanceof返回一个对象是否是一个类的实例

class testClase{};

$myObj = new testClass();

if ($myObj instanceof testClase)

echo "sth shit here..."

==================变量类型===========================

gettype($var)

settype($var, 'double')

下面的函数返回值都是 true/false

is_array();

is_double(), is_float(), is_real()

is_long(), is_int(), is_integer()

is_string()

is_object()

is_resource()

is_null();

is_scalar()

is_numeric()

is_callable()

下面是几个比较重要的变量

isset($var) --变量是否存在,有别于empty()

unset($var)

empty($var) --变量值是否为空

=========================格式化字符串=================================

addslashes($var), 所有要写入数据库的字符串都最好先执行这个函数,回他特福字符都转义了的

explode(string splitor, sting input [, int limit])

$email_array = explode('@', $email) ==> $email_arry[0]存入的是域名,$email_array[1]存入的是网址

impode(string splitor, sting input [, int limit])

$new_email = implode('@', $email_array) ==>根据数组生成新的邮箱地址

strtolower($var), 将字符串转换成小写

strtok(string str, string splitor),将一个字符串分割成小块

regx正则表达式

=========================php中的函数使用=================================

require(), 加载其他代码,如果出错,会报一个致命错误

inlcude(),夹在其他代码,如果出错,只会报一个警告

require_once(),

include_once(),

function fun(&$var1, $var2=10) --函数输入参数,可以是引用,也可以给默认值

{

global $varx = 10; --全局变量的声明

return 10;
--返回值

}

=========================php中的类使用=================================

1 php函数名称或者变量名称可以当作字符串操作

2 内置的几个重要的函数:构造/析构/__get/__set函数

3 php的类变量和函数,默认是public型的

class myclass

{

var $attr1;

var $attr2;

function fun1($parm_name)

{

return $this->$parm_name;

}

function __construct($param) --构造函数,如果没有以__construct命名的函数,则会默认找到和类名相同的的构造函数

{

$this->$attr1 = $param;

echo $this->$attr1;

}

function __destruct() --析构函数

{

}

function __get($name)
--需要在这里验证变量的合法性

{

return $this->$name;

}

function __set($name, $value) --需要在这里验证变量的合法性

{

$this->$name = $value;

}

}

$a = new myclass();

$a->$attr2 = 5; ==>php间接的回去调用 __set()函数

4 继承,默认的继承方式是 public

class B extends A

{

var $attr2;

private function oper2()

{

}

protected function oper3()

{

}

public function oper4()

{

}

}

class A

{

var $attr1;

function __construct()

{

$this->oper2(); //failed

$this->oper3();
//success

$this->oper4();
//success

}

function oper1()

{

}

}

$b =new A();

$b->oper1(); //success

$b->oper2(); //failed

$b->oper3(); //failed

$b->oper4(); //success

5 重载,允许在子类中和父类同名的函数

如果想要在子类中仍然访问父类中的同命函数可以使用 parend::func()

6 final 禁止类被继承,或者禁止函数被重载

final class A  ==>如果有类要继承的话就会报错

{

...

}

class A

{

final function oper1() ==>如果子类重要重载,就会报错

{

}

}

7 PHP只支持单一继承,不支持多继承

8 接口的实现 ==> 是多继承的一种实现方式,首先类可以继承多个其他类,同时又可以扩展接口

interface Display()

{

funciotn display();

}

class webPage extends A

{

...

}

class webPage implements Display

{

function display()

{

...

}

}

9. PHP的其他功能和方法

__close函数,克隆一个对象 ==> $c = clone $b;

__call函数

抽象类和抽象方法 ==>包含抽象方法的类必须是抽象的

abstract class A

{

abstract function oper1(); //一定没有类的实现

}

10 __autoload()方法,不属于任何一个类,是用来初始化一些资源信息的

function __autoload($name)

{

include_once $name.'.php'

}

11. 实现类的迭代

类对象必须实现Iterator(), IteratorAggregate().

12. __toString(), 类必须实现这个函数,当打印某个类时,会把类中的属性值打印出来

$P = new myclass();

echo $p

class myclass()

{

var $var1;

var $var2;

public function __toString()

{

return var_export($this, TRUE); -- var_export()打印出类中所有的属性

}

}

13. 使用 reflectoin 反射,访问已有类或者对象,找到类和对象结构的能力。

$class = ReflectionClass('myclss');

echo $class;

14. 异常

try

{

if (condition)

{

throw new exception(errMsg, errCode);

}

}

catch (Exception $ex)

{

echo $ex->getCode().$ex->getMsg();

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: