1.gettype() 用来获取变量的类型
2.var_dump()用来查看某个表达式的类型和值
3.定义一个字符串是用单引号,双引号会将字符串里面的特征会解析出来
4.Herodoc结构就是<<<FOOBRA XXXX FOOBAR;理解为结构字符串。
5.字符串用.连接起来。
6. 键=>值 对。
7.unset()函数允许删除数组中的某个键。
8.数组声明的方式 $arr=array("foo"=>"bar",12=>true);
9.集合的演示
<?php //集合显示 $colors= array(‘red‘,‘green‘,‘been‘,‘yellow‘); foreach ($colors as $color){ echo "颜色有$color"; } ?>
10.对象的初始化和方法的调用
<?php //对象的初始化 class foo{ public function do_foo(){ echo "方法执行了"; } } $bar=new foo; $bar->do_foo(); ?>
11.回调方法
<?php //回调函数 function first(){ echo "第一次显示"; } class Myclass{ static function myfirst(){ echo "静态方法显示"; } } call_user_func(‘first‘); //call_user_func(array(‘first‘,‘myfirst‘)); $obj=new Myclass(); call_user_func(array($obj,‘myfirst‘)); ?>
12.php的变量是区分大小写的
没有加global会报错,现实结果是2
<?php //变量的使用范围 $a=1; $b=2; function sum() { $b=$a+$b; } sum(); echo $b; ?>
加了global,显示的结果是3
<?php //变量的使用范围 $a=1; $b=2; function sum() { global $a,$b; $b=$a+$b; } sum(); echo $b; ?>
13.静态变量
<?php //静态变量 function Test(){ $a=0; echo $a; $a++; } Test(); Test(); Test(); ?>
输出的是000
<?php //静态变量 function Test(){ static $a=0; echo $a; $a++; } Test(); Test(); Test(); ?>
显示输出的是012
13.可以判断变量类型的函数
gettype(),is_array(),is_float(),is_int(),is_object()和 is_string();
14.设置cookies
setcookie();还有$_cookie,$http_cookie_cars和$_request
15.定义常量(define 和 const)
define("foo","something");或者 const foo="something"
echo foo
16.魔术常量
魔术常量不区分大小写
echo __LINE__;//当前行号 echo __FILE__;//当前文件的完整路径 echo __DIR__;//文件所在的目录 echo __FUNCTION__;//函数名称 echo __CLASS__;//类的名称 echo __METHOD__;//类的方法名 echo __NAMESPACE__;//当前命名空间的名称
17.表达式
$a=5;
表示将值5的分配给变量$a
18.运算符
错误运算符:@ 。当放在一个php表达式前面,表明表达式可能产生的任何错误信息都被忽略掉。
执行运算符:PHP 支持一个执行运算符:反引号(``)。注意这不是单引号!PHP 将尝试将反引号中的内容作为外壳命令来执行,并将其输出信息返回(例如,可以赋给一个变量而不是简单地丢弃到标准输出)。使用反引号运算符“`”的效果与函数 shell_exec() 相同。 <?php
$output = `ls -al`;
echo "<pre>$output</pre>";
?>
数组运算符:+联合 ==相等,===全等,!=不等,!==不全等
19.控制结构
continue 后面的语句执行完后结束循环
20.php函数
匿名函数又称为闭包函数,临时创建一个没有名字的函数,经常用作回调函数的参数。
<?php //匿名函数变量赋值 $greet=function($name){ printf("hello %s",$name); }; $greet(‘World‘); $greet(‘PHP‘); ?>
注意是%s。
21。类和对象
php中的::是类中静态方法和静态属性的引用方法。
可以不用实例化对象直接使用Test::$test属性的值
extends关键字继承另一个类的方法和成员,只能单继承不能扩展多个类
被继承的方法和成员可以通过用同样的名字重新声明被覆盖,除非父类定义方法时使用了 final 关键字。可以通过 parent:: 来访问被覆盖的方法或成员。
22.自动加载对象
比如需要从Myclass1.php和Myclass2.php加载Myclass1和Myclass2类。
<?php //匿名函数变量赋值 function __autoload($class_name){ require_once $class_name.‘.php‘; } $obj=new Myclass1(); $obj=new Myclass2(); ?>
23.构造函数和析构函数
<?php //构造函数 class BaseClass{ function __construct() { print "父类的构造函数"; } } class SubClass extends BaseClass{ function __construct() { parent::__construct(); print "子类的构造函数"; } } $obj=new BaseClass(); $obj=new SubClass(); ?>
输出的结果是 “父类的构造函数父类的构造函数子类的构造函数”;
要执行父类的析构函数,必须在子类的析构函数体中显式调用 parent::__destruct()。
<?php class MyDestructableClass { function __construct() { print "In constructor "; $this->name = "MyDestructableClass"; } function __destruct() { print "Destroying " . $this->name . " "; } } $obj = new MyDestructableClass(); $obj->__destruct(); ?>
没有大区别
24.php的访问控制
对属性和方法的访问控制:public ,private,protected。
public 类在任何地方都可以访问到,private是其所在类访问,protected类只能被所在类访问。
25类的继承
extends
26.static 关键字
为了方便不用实例化对象也能直接访问类的成员或者方法。
<?php class Foo { public static function aStaticMethod() { echo "hello"; } } Foo::aStaticMethod(); $classname = ‘Foo‘; $classname::aStaticMethod(); // As of PHP 5.3.0 ?>
输出结果是 hellohello