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();
}
<?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();
}