相对于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. 如何清除应用程序承载 WebBrowser 控件时缓存

    原文:如何清除应用程序承载 WebBrowser 控件时缓存 http://support.microsoft.com/kb/262110/zh-cn察看本文应用于的产品 function loadT ...

  2. 直读Innodb datafile

    这两天有空翻了翻大神写的<innodb存储引擎>,手痒亲身实践.由于此书出版了有段时日,没有用其推荐的python工具,通过点滴推敲,略微发现其中冰山一角的奥秘.对于今后对于一些问题查证或 ...

  3. Android Material Design带UI变化

    谷歌Matias Duarte称,"Material Design是漂亮和大胆的.由于干净的排版和布局简单且easy理解.内容才是焦点. 谷歌I/O 014开发人员大会上宣布全新的设计语言& ...

  4. C语言与sqlserver数据库

    原文:C语言与sqlserver数据库 1.使用C语言来操作SQL SERVER数据库,采用ODBC开放式数据库连接进行数据的添加,修改,删除,查询等操作. step1:启动SQLSERVER服务,例 ...

  5. linux 定时关机命令

    一. 关机流程 Linux 运作时, 不能够直接将电源关闭, 否则, 可能会损毁档案系统. 因此, 必须依照正常的程序关机: 观察系统使用情形(或许当时, 正有使用者做着重要的工作呢!) 通知线上使用 ...

  6. 原生JavaScript生成GUID的实现

    GUID(全局统一标识符)是指在一台机器上生成的数字,它保证对在同一时空中的所有机器都是唯一的.通常平台会提供生成GUID的API.生成算法很有意思,用到了以太网卡地址.纳秒级时间.芯片ID码和许多可 ...

  7. J2EE总结(2)——Servlet/JSP

    Servlet/JSP Servlet定义:部署在java的Webserver上的组件.整个java服务端程序都构建在Servlet之上,以多线程方式提 供服务,具有效率高.可扩展,可移植的特点. J ...

  8. 【转】Android 系统菜单与自定义菜单

    Android 系统菜单与自定义菜单实现方法如下:系统菜单显示DefaultMenu.java package com.wxz.menu; import com.wxz.menu.R; import  ...

  9. 解决nexus下载maven索引的问题

    解决nexus下载maven索引的问题 (2011-10-12 17:48:46) 转载▼ 标签: it 分类: java 转自 http://www.colorfuldays.org/program ...

  10. C# 通讯网关开发

    C# 通讯网关开发 楼主从12年毕业大部分时间一直从事于通讯网关的开发,刚刚学那会连C#是啥都不知道,就直接入手网关开发,前前后后到现在也算是弄了5.6个通讯协议,后来看到北风之神的socket框架和 ...