php 不常用的语法

2014-10-13 奇Yu WEB开发

在wordpress一类博客程序的模板里面看到很多奇怪的PHP语法,比如:
<?php if(empty($GET_['a'])): ?>
<font color=”red”>空的</font>
<?php endif; ?>
对于相当一部分PHP爱好者来说根本没见过啊,这些是什么东西呢?难道是那些博客的开发者自己搞的仿PHP的模板语言?
非也,其实这些都是PHP的语法,只不过不常用而已,这些都是PHP流程控制的替代语法。
这里就就给大家详细说一下PHP流程控制的替代语法。什么是替代语法?
简单的说就是一些语法的另类写法。

 

PHP中那些语法有替代语法?
流程控制(包括if,while,forforeach,switch)这几个语句有替代语法。

 

替代语法的基本形式:
左花括号({)换成冒号(:),把右花括号(})分别换成 endif;,endwhile;,endfor;,endforeach; 以及 endswitch;

 

举个例子吧:
<?php if ($a<0): ?>
是负数拉
<?php endif; ?>
上面的语句等同于
<?php if ($a<0){ ?>
是负数拉
<?php } ?>

 

为什么纯PHP代码里面几乎看不到?
这些语法有点不符合C家族的传统有点另类,大家不大习惯于这种语法,而且不是很方便

 

大家都不习惯,而且这么另类要他有什么用?蛋疼吗?
存在就是合理,它自有它的用处,这些语法能发挥的地方是在PHP和HTML混合页面的代码里面。好处如下:
1.使HTML和PHP混合页面代码更加干净整齐。
有代码洁癖的朋友最惧怕的就是乱七八糟的混合代码,有了这些没有花括号的替代语法,各位爱干净的朋友开心到尿震。
2.流程控制逻辑更清晰,代码更容易阅读
要改别人的PHP和HTML混合代码,打开发现,我擦!太TMD垃圾了!如果用替代语法,我想再垃圾的程序开发人员也不至于写的太乱吧。
3.一些从ASP等其他类basic语言家族转来的朋友,会更容易使用PHP。

 

讲半天没用的,捞点干的行不?这东西怎么用?

 

根据之前描述的使用方法,if语句的替代语法使用如下:
<?php if ($a == 5): ?>
<div>等于5</div>
<?php elseif ($a == 6): ?>
<div>等于5</div>
<?php else: ?>
<div>不是5就是6</div>
<?php endif; ?>

 

while替代语法:
<?php while (expr): ?>
<li>循环点什么</li>
<?php endwhile; ?>

for替代语法:

<?php for (expr1; expr2; expr3): ?>
<li>循环点什么</li>
<?php endfor; ?>
foreach替代语法:
<?php foreach (expr1): ?>
<li>循环点什么</li>
<?php endforeach; ?>

 

switch替代语法:
<?php
switch ($i):
case 0:
echo “i equals 0″;
break;
case 1:
echo “i equals 1″;
break;
case 2:
echo “i equals 2″;
break;
default:
echo “i is not equal to 0, 1 or 2″;
endswitch;
?>

评论(0) 浏览(828)

phonegap(cordova)从手机app跳转到web页面在跳转回APP本地页面思路

2014-10-11 奇Yu 移动应用

项目中需要用到 WAP支付宝支付。

但是 使用PHONEGAP开发 跳转到支付宝支付,然后跳转回来 就回不到APP的本地页面,

就是使用WAP的第三方登录也是一样的。很难从WAP页面在跳转到 app本地的本地页面


可以看下我的实现思路。

QQ截图20141011163811.png

我是使用phongeap +jqmobi 做的

下面是 点击去支付跳转到 打开IFRAME的页面


    <!-----第三方登录------->
    <div id="qi_disanfang" class="panel padding0" data-header="default_head" data-footer="none" data-load="ondisanfang" data-unload="undisanfang">
        <iframe id="login_content" class="pay_content" style="height:100%;width:100%;border:0 none;" src=''></iframe>
    </div>


只是在页面里面创建了一个IFRAME框,SRC为空

页面初始化函数


/*第三方登录*/
function ondisanfang(){
    //设置标题
    qsetTitle("登录");
    //监听消息状态
    window.addEventListener('message',loginStart, false);
    //远程wap页面的地址
    var url=serverURL+'user.php?act=oath&type=qq&callblock=app/login.php';
    //赋值给iframe 的src 并设置iframe的宽高    
    document.getElementById("login_content").src = url;
    var $pay_content = $("#login_content");
    var h = $pay_content.parent().height();
    var w = $pay_content.parent().width();
    $pay_content.css({
        height: h,
        width: w
    });

}
loginStart 监听消息回调函数

//消息回调函数
function loginStart(e) {
    //判断传过来的消息 是不是自己设置的,这个地方如果想严谨一点还可以判断下 发消息的 域地址是不是自己的地址,我这里没有判断
    if(e.data=='login_success'){
        //如果是就执行自己的方法 跳转到其它页面或者做其它的操作
        ongoto('qi_center');
    }
}
页面卸载函数

function undisanfang() {
    //删除刚才的监听
    window.removeEventListener('message',loginStart,false);
}
这样这个打开远程的iframe框就做好了,所有的wap远程页面都在这里操作。登录。支付。当他们支付成功 都会 有一个 回调页面。
这个回调页面就是我们自己服务器的页面
回调页面里只需要发送一个消息给父窗口,让我们刚才的监听收到消息就可以了
可以在回调页面做一个按钮 来执行一个JS函数,也可以直接发送一个消息,具体看业务逻辑
回调页面JS

  <script type="text/javascript">

		 //给iframe框的父窗口发送一个消息  这个消息内容要和刚才你监听的内容一样
         top.postMessage('login_success', '*');

	
  </script>

标签: phonegap cordova

评论(0) 浏览(9723)

php gmstrftime() 函数使用方法详解

2014-10-11 奇Yu WEB开发

Definition and Usage
定义和用法

The gmstrftime() function formats a GMT/UTC time or date according to locale settings.
gmstrftime()函数的作用是:根据区域设置格式化GMT/UTC时间/日期。

Syntax
语法

gmstrftime(format,timestamp)
Parameter参数 Description描述
format Required. Specifies how to return the result: 
必要参数。指定了返回结果的方法:
  • %a - abbreviated weekday name 
    %a – 缩略的表示星期几的名称
  • %A - full weekday name 
    %A – 表示星期几的全称
  • %b - abbreviated month name 
    %b – 月份简称
  • %B - full month name 
    %B – 月份全称
  • %c - preferred date and time representation 
    %c – 首选的日期和时间表示法
  • %C - century number (the year divided by 100, range 00 to 99) 
    %C – 表示世纪的数字(年份除以100,范围从00到99)
  • %d - day of the month (01 to 31) 
    %d – 一个月包含的天数(从01到31)
  • %D - same as %m/%d/%y 
    %D – 时间格式,与%m/%d/%y表示法相同
  • %e - day of the month (1 to 31) 
    %e - 一个月包含的天数,数字前不包括0(从1到31)
  • %g - like %G, but without the century 
    %g – 与%G雷同,但除去“世纪[century]”
  • %G - 4-digit year corresponding to the ISO week number (see %V). 
    %G – 与ISO星期数相对应的4位数年份(见%V)
  • %h - same as %b 
    %h – 与%b相同
  • %H - hour, using a 24-hour clock (00 to 23) 
    %H – 小时,使用24小时时钟(00到23)
  • %I - hour, using a 12-hour clock (01 to 12) 
    %I – 小时,使用12小时时钟(01到12)
  • %j - day of the year (001 to 366) 
    %j – 一年的天数(001到366)
  • %m - month (01 to 12) 
    %m – 月份(01到12)
  • %M - minute 
    %M – 分钟
  • %n - newline character 
    %n – 换行符
  • %p - either am or pm according to the given time value 
    %p – 与给定的时间值相对应的am或pm
  • %r - time in a.m. and p.m. notation 
    %r -用am或pm表示给定的时间
  • %R - time in 24 hour notation 
    %R – 用24小时制表示的时间
  • %S - second 
    %S – 秒
  • %t - tab character 
    %t – tab键/制表符
  • %T - current time, equal to %H:%M:%S 
    %T – 当前时间,与“%H:%M:%S”组合相同
  • %u - weekday as a number (1 to 7), Monday=1. Warning: In Sun Solaris Sunday=1 
    %u – 以数字形式表示星期几(1到7),Monday=1。提醒:在SUN Sloaris系统中,Sunday=1
  • %U - week number of the current year, starting with the first Sunday as the first day of the first week 
    %U – 当今年份中包含的周的总数,以第一个星期日作为第一周的第一天
  • %V - The ISO 8601 week number of the current year (01 to 53), where week 1 is the first week that has at least 4 days in the current year, and with Monday as the first day of the week 
    %V – 在当今年份中所包含的ISO 8601格式下的周的总数(01到53),week 1表示第一周,以周一作为每周的第一天
  • %W - week number of the current year, starting with the first Monday as the first day of the first week 
    %W – 当前年份中包含的周的总数,以第一个星期一作为第一周的第一天
  • %w - day of the week as a decimal, Sunday=0 
    %w – 以数字的形式表示星期几,Sunday[星期日]=0
  • %x - preferred date representation without the time 
    %x – 选取除去时间[time]的日期[date]
  • %X - preferred time representation without the date 
    %X –选取除去日期[date]的时间[time]
  • %y - year without a century (range 00 to 99) 
    %y – 只显示包含年份的数字,不包含表示世纪的数字(00-99)
  • %Y - year including the century 
    %Y – 显示包含世纪数字的年份(即:四位数字表示的年份,如:1999,2001等)
  • %Z or %z - time zone or name or abbreviation 
    %Z或%z – 前者为时区名称;后者为时区名称的简称
  • %% - a literal % character 
    %% - 输出“%”字符串
timestamp Optional. Specifies the date or time to be formatted. If no timestamp is specified, it uses the current GMT time.
可选参数。指定日期或时间的格式。如果没有指定时间戳[timestamp],那么将默认使用当前的GMT时间。

Tips and Notes
提示

Tip: This function is identical to strftime() except that the time returned is Greenwich Mean Time (GMT).
提示:gmstrftime()函数与strftime()函数用法大致相同,唯一的不同点是gmstrftime()函数返回的格林威治时间(GMT:Greenwich Mean Time)。

Example
案例

Example of both strftime() and gmstrftime():
strftime() 和 gmstrftime()的案例:

<?php
echo(strftime("%b %d %Y %X", 
mktime(20,0,0,12,31,98))."<br />");
echo(gmstrftime("%b %d %Y %X", mktime(20,0,0,12,31,98))."<br />");
//Print the current date, time, and time zone.
echo(gmstrftime("It is %a on %b %d, %Y, %X time zone: %Z",time()));
?>

The output of the code above could be:
上述代码将输出下面的结果:

Dec 31 1998 20:00:00Dec 31 1998 19:00:00It is Wed on Jan 25, 2006, 11:32:10 time zone:
 W. Europe Standard Time

标签: php

评论(0) 浏览(3121)

Powered by emlog 豫ICP备14014990号-1 sitemap