首页 > 代码库 > php语法快速学习笔记
php语法快速学习笔记
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()。
<?phpclass 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 关键字
为了方便不用实例化对象也能直接访问类的成员或者方法。
<?phpclass Foo { public static function aStaticMethod() { echo "hello"; }}Foo::aStaticMethod();$classname = ‘Foo‘;$classname::aStaticMethod(); // As of PHP 5.3.0?>
输出结果是 hellohello
php语法快速学习笔记