相对于C#,PHP中的个性化语法

背景

今天把PHP的基本语法结构熟悉了一下,包括:变量、类型、常量、运算符、字符串、作用域和函数等,本文列举一些我需要强化记忆的结构(和C#不同)。

一些个性化的结构

foreach结构

 1 <?php
2 $array = array("a"=>1, "b"=>2);
3
4 foreach($array as $value) {
5 echo "value$value<br/>";
6 }
7
8 foreach($array as $key=>$value) {
9 echo "$key=>$value<br/>";
10 }
11 ?>
1 value1
2 value2
3 a=>1
4 b=>2

global和static作用域

  1. 在函数外声明的变量都属于全局作用域,函数内的$global $var相当于$var = $Globals["var"]。
  2. static作用域的变量在函数首次调用的时候执行初始化,函数执行完不会清理,后续的函数调用不会再执行初始化。
 1 <?php
2 $global_x = 0;
3
4 function scope_test() {
5 static $count = 0;
6 global $global_x;
7
8 $count++;
9 $global_x++;
10
11 echo "$count, $global_x<br/>";
12 }
13 scope_test();
14 scope_test();
15 ?>
1 //输出内容
2 1, 1
3 2, 2

变量的变量

1 <?php
2 $name = "Tom";
3 $$name = "I am tom";
4
5 echo $$name."<br/>";
6 echo $Tom."<br/>";
7 ?>
1 I am tom
2 I am tom

常量定义

1 <?php
2 define("HAPPY", "幸福");
3
4 echo HAPPY."<br/>";
5 ?>
1 //输出内容
2
3 幸福

字符串插入

1 <?php
2 $name = "Tom";
3 $$name = "I am tom";
4
5 echo "$Tom,${$name},{$$name}<br/>";
6 ?>
1 I am tom,I am tom,I am tom

heredoc

1 <?php
2 echo <<<DOC
3 段
4 光
5 伟
6 DOC;
7 ?>
1 //输出内容
2
3 段 光 伟

函数级别的作用域

1 <?php
2 for($i = 1; $i <= 10; $i++) {
3 }
4
5 echo $i;
6 ?>
1 //输出内容
2
3 11

函数返回多个结果

1 <?php
2 function muti_return() {
3 return array(1, 2);
4 }
5
6 list($x, $y) = muti_return();
7
8 echo"($x, $y)";
9 ?>
1 //输入内容
2
3 (1, 2)

备注

还有一个问题我不是很明白,明天得查查资料,这个问题是:PHP的内存是如何分配和管理的?

相对于C#,PHP中的个性化语法的更多相关文章

  1. PHP:相对于C#,PHP中的个性化语法

    背景 今天把PHP的基本语法结构熟悉了一下,包括:变量.类型.常量.运算符.字符串.作用域和函数等,本文列举一些我需要强化记忆的结构(和C#不同). 一些个性化的结构 foreach结构 <?p ...

  2. Hive中的排序语法

    ORDER BY hive中的ORDER BY语句和关系数据库中的sql语法相似.他会对查询结果做全局排序,这意味着所有的数据会传送到一个Reduce任务上,这样会导致在大数量的情况下,花费大量时间. ...

  3. Razor视图中的@:和语法

    Razor视图中的@:和语法 原创changuncle 最后发布于2016-12-07 17:43:50 阅读数 4456  收藏 展开 在MVC项目中新建视图的时候默认支持ASPX引擎和Razor引 ...

  4. php中一个"异类"语法: $a && $b = $c;

    php中一个"异类"语法: $a && $b = $c;     $a = 1;$b = 2;$c = 3;$a && $b = $c;echo & ...

  5. ASP.NET MVC 3和Razor中的@helper 语法

    原文:http://kb.cnblogs.com/page/102191/ ASP.NET MVC 3支持一项名为"Razor"的新视图引擎选项(除了继续支持/加强现有的.aspx ...

  6. OC中的点语法,成员变量的作用域

    点语法 点语法本质是函数的调用,不是像java中那样,是用来访问成员变量的:oc中访问成员变量是用 -> 访问的: Person *p = [Person new]; p.age = 10; / ...

  7. ThinkPHP 3.1.2 模板中的基本语法<1>

    # # ThinkPHP 3.1.2 模板中的基本语法 一.传统的方式,导入CSS和JS文件 1.css link js scr <link rel='stylesheet' type='tex ...

  8. ASP.NET MVC 3: Razor中的@:和语法

    原文 ASP.NET MVC 3: Razor中的@:和语法 [原文发表地址] ASP.NET MVC 3: Razor’s @: and <text> syntax[原文发表时间] De ...

  9. TypeScript中的怪语法

    TypeScript中的怪语法 如何处理undefined 和 null undefined的含义是:一个变量没有初始化. null的含义是:一个变量的值是空. undefined 和 null 的最 ...

随机推荐

  1. 【百度地图API】如何判断点击的是地图还是覆盖物?

    原文:[百度地图API]如何判断点击的是地图还是覆盖物? 摘要:很多API爱好者问我,为什么我点击的是marker,而map也会响应该事件呢?怎样才能判断,我点击的是标注,还是地图呢?下面一起来看看. ...

  2. 【百度地图API】如何获取行政区域的边界?

    原文:[百度地图API]如何获取行政区域的边界? 摘要:以前教过大家如何自行获取行政区域,或者自定义获取一个区域的边界值.今天来教大家直接调用百度地图API1.3(目前最新版本)来获取行政区域的边界值 ...

  3. 我在Yahoo与ATS 九死一生的故事

    我在Yahoo与ATS 九死一生的故事 http://www.sunchangming.com/blog/post/4667.html 去年9月,我去Yahoo后领导交给我的第一件事,就是把Yahoo ...

  4. 还是畅通project(杭州电1233)

    还是畅通project Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Tota ...

  5. nginx跳转

    语法规则: location [=|~|~*|^~] /uri/ { - } = 开头表示精确匹配   ^~ 开头表示uri以某个常规字符串开头,理解为匹配 url路径就可以.nginx不正确url做 ...

  6. C#函数式编程-高阶函数

    随笔分类 -函数式编程 C#函数式编程之标准高阶函数 2015-01-27 09:20 by y-z-f, 344 阅读, 收藏, 编辑 何为高阶函数 大家可能对这个名词并不熟悉,但是这个名词所表达的 ...

  7. javascript 验证 yyyy-MM-dd HH:mm:ss 的正则表达式

    原文:javascript 验证 yyyy-MM-dd HH:mm:ss 的正则表达式 ^((\d{2}(([02468][048])|([13579][26]))[\-\/\s]?((((0?[13 ...

  8. PHP 11:函数

    原文:PHP 11:函数 本文章介绍PHP的函数.如何学习呢?可以从以下几个方面考虑 函数是如何定义的?区分大小写吗? 函数的参数是如何定义的? 函数是否支持重载? 函数的返回值是如何定义的. 函数有 ...

  9. 纯Lambda实现斐波那契数列

    还需要考虑溢出等问题,主要无事写着玩 Func<float, float, float> a = (arg1, arg2) => 0f;//init ; a = (lastNumbe ...

  10. [译]Java 设计模式之工厂

    (文章翻译自Java Design Pattern: Factory) 1.Java工厂模式的来历 工厂设计模式用于创建基于不同参数的对象.下面的例子就是在一个工厂里创建一个人.如果我们向工厂要一个b ...