php基础(重写)

原创
2016-06-23 13:06:39 873浏览

  • php用分号 ;分隔语句
  • 用逗号来分隔函数参数和其他列表项
  • 间隔字符,例如换行,空格和tab都被认为是空格
  • 用点号连接字符串
  • php注释有几种方式:

      /*  */  //  #
  • php是弱类型语言,不必在变量使用之前声明

  • php可以进行变量类型转换

    $test = 0;$test1 = (float)$test1; //将int强制转为float
  • 常量都是大写,常量和变量的区别就是它没有$

  • php有一些超级全局变量

    • $GLOBALS所有全局变量数组
    • $_SERVER服务器环境变量数组
    • $_GET通过GET方式传递给该脚本的变量数组
    • $_POST通过POST方式传递给该脚本的变量数组
    • $_COOKIE cookie变量数组
    • $_FILES与文件上传相关的变量数组
    • $_ENV环境变量数组
    • $_REQUEST所有用户输入的变量数组
    • $_SESSION会话变量数组
    < ?phpforeach($_SERVER as $var => $value){    echo "$var => $value \n";}?>----CR_RUNID => 19006 TERM_PROGRAM => CodeRunner TERM => dumb SHELL => /bin/zsh TMPDIR => /var/folders/_4/6v2frjcx2w90jvq9dh92z1vw0000gn/T/ CR_DEBUGGING => 0 SSH_AUTH_SOCK => /private/tmp/com.apple.launchd.EFcqscDf4y/Listeners filename => Untitled 2.php __CF_USER_TEXT_ENCODING => 0x1F5:0x19:0x34 CR_DEVELOPER_DIR => /Applications/CodeRunner.app/Contents/SharedSupport/Developer CR_FILENAME => Untitled 2.php PATH => /Library/Application PWD => /var/folders/_4/6v2frjcx2w90jvq9dh92z1vw0000gn/T/CodeRunner XPC_FLAGS => 0x0 CR_TMPDIR => /var/folders/_4/6v2frjcx2w90jvq9dh92z1vw0000gn/T/CodeRunner XPC_SERVICE_NAME => 0 SHLVL => 1 ANT_ROOT => /Applications/Cocos/tools/ant/bin CR_VERSION => 3960 LC_CTYPE => UTF-8 COCOS_FRAMEWORKS => /Applications/Cocos/frameworks CR_ENCODING => 4 _ => /usr/bin/php PHP_SELF => Untitled 2.php SCRIPT_NAME => Untitled 2.php SCRIPT_FILENAME => Untitled 2.php PATH_TRANSLATED => Untitled 2.php DOCUMENT_ROOT =>  REQUEST_TIME_FLOAT => 1454780104.3473 REQUEST_TIME => 1454780104 argv => Array argc => 1 
  • 有三元操作符

    ($grade >= 50 ? 'Passed' : 'Failed')
  • 数组可以用 []访问数组也可以用 =>

  • 反引号“执行命令
  • 可以用new和->来初始化类的实例和访问类的成员,也可以调用方法
  • print比echo慢,因为print会返回。
  • 可以用gettype()来测试函数类型,php也提供了其他测试函数,如is_array(),is_object()等
  • 测试变量状态可以用isset()和empty(),注意区别,前者是判断变量是否有被set,后者是判断变量是否为空
  • 可以使用printf进行数据格式化输出,跟c语言类似,支持$d,$s等

    printf ("aaa is $d.",100);
  • 可以用sprintf(),sprintf和printf相同,不过他将输出赋值给一个字符串

    $cost = sprintf("$%.2f",43.2); //结果是$cost = $43.20
  • php支持布尔型,整形,字符串,数组,对象
  • 变量按值赋值和按引用赋值按值赋值是赋值变量,每个变量在内存中的地址是不一样的,按引用赋值是多个变量引用同一个内容,在内存中的地址是指向同一个的。

    按值赋值$value1 = "hello";按引用赋值$value1 = "hello";$value2 = &$value1;

变量作用域

php变量有4种作用域:

1.局部变量

在函数中声明的变量是局部变量,只能在函数中引用。

$x = 4;function assignx(){  $x = 0;  //这个就是局部变量  print ("A result is :".$x); //虽然一样的名字,但是函数内部只使用内部变量}assignx();print ("B result is:".$x);//在外部,会使用外部作用域的变量----A result is :0  这是执行了assignx()的结果B result is:4  这是执行了assignx()下一行的结果

2.函数参数

顾名思义,在函数参数中的作用域,函数参数在退出函数后也是无法使用的

function xman($value) { //这个就是函数参数    $value = $value * 10;    return $value;}$a = xman(10);echo $a;---100

3.全局变量

全局变量可以在程序任何地方访问,关键字是global或者是GLOBALS数组

$somevar = 15;function addit1() {    global $somevar; //有global就变成了全局变量,全局变量不会消失,所以是15+1    $somevar++;    echo "somevar1 is ".$somevar."\n";}addit1();function addit2() {    $somevar++; //因为不是全局变量,是局部变量,因为至于函数内部之中,所以从0开始,所以是0+1    echo "somevar2 is ".$somevar."\n";}addit2();----somevar1 is 16somevar2 is 1

4.静态变量

静态变量在函数退出时也不会消失,跟全局变量很像,但是不能在任何地方访问

function keep_track() {    static $count = 0;  //计算结果被保存了,所以不断+1    $count++;    echo $count."\n";}keep_track();keep_track();keep_track();----123

常量

常量constant是指在程序执行中无法修改的值,常量是全局的,可以在任何地方引用。

define("PI",3.141592); //定义常量用define$pi2 = 2 * PI; //引用常量不需要$

表达式

%s = 6;这个就是表达式

$a++

$sum = $a + $b;

$a = 'abc'.'cde';

$a && $b

$a == $b $a === $b $a != $b

$a < $n

转义

双引号会解析变量,所以一般用单引号。

大括号

通过大括号来表示复杂的数据类型的变量

echo "the capital of ohio is {$capitals['ohio']}";

控制结构和循环

跟其他的语言类似if语句,do while语句,for 语句,switch语句,foreach语句,break和continue语句,php5.3支持goto

文件包含

主要是为了将php的文件分离,例如将一些类放到单独的文件,然后按需要调用就好了,这样不用吧所有的类写到同一个文件里面

< ?phpinclude_once("/usr/local/test.php");?>
< ?phprequire("/usr/local/test.php");?>
< ?phprequire_once("/usr/local/test.php");?>
  • include 和include_once区别是once会先验证是否包含了文件,是的话,就不再次包含文件
  • require和require_once类似
  • require和include的区别在于,require出错的时候回停止执行,而include不会。

本文由 PeterYuan 创作,采用 署名-非商业性使用 2.5 中国大陆 进行许可。 转载、引用前需联系作者,并署名作者且注明文章出处。神一样的少年 »php基础(重写)

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。