我们知道,在一般的语言中,return都是作为函数的返回值应用的,也就是说,return语句必须是在函数体内。但PHP中,return不光可以再函数体内,还可以在文件中的任何位置。
ThinkPHP框架就是用了return这个特性,从而有了非常灵活和完美的配置文件读取等一系列操作。
如:
在a.php中
那么$b = require_once(’a.php’);
此时$b就成了数组array(’key’=>’value’)了,非常棒的语法功能。
下面是手册中具体的解释:
If called from within a function, the return() statement immediately ends execution of the current function, and returns its argument as the value of the function call. return() will also end the execution of an eval() statement or script file.
If called from the global scope, then execution of the current script file is ended. If the current script file was include()ed or require()ed, then control is passed back to the calling file. Furthermore, if the current script file was include()ed, then the value given to return() will be returned as the value of the include() call. If return() is called from within the main script file, then script execution ends. If the current script file was named by the auto_prepend_file or auto_append_file configuration options in php.ini, then that script file’s execution is ended.
在视觉设计师做完视觉方案后,要么是他自己做成HTML,要么是由前端开发人员来完成PSD2HTML的工作。视觉设计师来完成的话,大部分都是用table做的,这里并不是想说table有多么的不好(有时候用table还是非常棒的),关键是滥用table,导致了页面质量的下降。而对于一些简单并没有什么特别效果的页面来说,仍给前端开发人员来做,他们往往也是在赶时间的情况下快速的完成,从而也就产生了一些多余的东西。这样既花了很多时间,页面质量也不是很高。在这种前提下,是不是可以通过工具来进行简单的页面制作呢。
搜索了一下,从搜索结果上看,本以为有了类似的工具,但很遗憾,都是专门帮别人PSD2HTML的公司或者工作室,并没有工具化。
到这里,我并没有实现这样的工具,只是作为一个构想。等有时间学学C++后在考虑实现方面的事情。
注:对于视觉设计师来说,应该也是有一些要求的。例如不能把文字图层和背景图片图层合并,等等。。。
争的太多
失的更多
命运像风
一直未了
悄然之声
如影随行
我们可能经常会遇到通过JS设置form表单的action属性值,一般的情况下不会出现任何的问题的。但当表单中含有id或name为action的元素时,IE下设置form表单action属性就无效了,参看下面的代码:
<form action=”" method=”post” id=”form1″ name=”form1″>
<input type=”hidden” name=”action” id=”action”>
<input type=”text”>
<input type=”submit” value=”submit” />
</form>
<script>
document.getElementById(’form1′).setAttribute(’action’,'http://www.baidu.com’)
</script>
我们知道,一般能够进行“()”执行的对象都是函数。但在IE中却有一定的特殊。如:window.alert,window.prompt,window.confirm,document.write。这几个东西我们最常用了,尤其是alert,它们可以像函数那样执行。但在IE中alert并不是个函数,它的typeof为object,constructor为undefined。不知道IE为什么要这样设计。其他的浏览器都认为它们是函数。
其实对某些东西进行特殊处理并不奇怪。在PHP中,就有很多这样的东西。如:print 既可以单语句用,又可以当函数用。
我们知道,在JS中,是可以对NaN,Infinity,undefined重新定义的。但对于NaN,即使重新定义也无法达到我们想要的结果。这篇文章实际上也就是说说NaN的独特之处。
我们知道原生的NaN,是不等于本身的,这算是最奇特的内置值了。但我们可以对它进行重新定义,如NaN = 0,这里我们就将它重新定义的值为0。这样我们在实际操作中就要简单的多,但结果可能并不怎么满意。
对于Infinity和undefined进行重新定义后,是没什么问题的。
对于undefined来说,我们将其值重新定义为0,那么与null将不在相等了,而是与0,‘’,FALSE等相等了。这样是我们期望的。(原生undefined是与null相等的)。
加::对于函数的返回值为undefined的时候,与重定义的undefined还是不相等的。。。。
对于NaN,测试出以下的结果。
NaN = 0;
NaN == NaN ? TRUE
NaN == 0 ? TRUE
NaN == false ?TRUE
parseInt(’www’) == NaN ? false。
这里我们知道parseInt(’www’)的结果是NaN,按道理说定义了NaN为0,那么结果应该是true。但貌似这里是NaN还是原生的NaN,并没有并重新定义。。。
疑惑中。。。
NaN确实太特殊了,避免使用它中。。。
各大浏览器差不多都有地址栏提示,就看智能程度和人性化怎么样了,这篇文章并不是讨论哪个浏览器的地址栏智能提示好。
目前地址栏的智能提示都是建立在用户历史URL记录的基础上进行的,对未访问过的URL并不能智能提示。搜狗浏览器稍微先进点,把当前流行网站的网址都记录下来,对这些的URL也能智能提示,这些都是在顶级域名的。但对于域名下页面的URL就没办法做到智能提示了。那么就有了域名下页面的URL智能提示的想法,那怎么做到呢?
1、浏览器提供接口,JS可以建立层对应在地址栏上,并能适时的捕获地址栏中的内容。这种“难度较大”,这里的难度并不是借口难度,而是由可能导致其他问题。
2、网站在根目录建立个特殊名称的文件,文件名称当然有个标准了,文件中包含里智能提示URL的列表。当用户在地址栏输完顶级域名后,浏览器就向该域名发送请求,获取域名下智能提示URL列表,并显示出来。这种方式操作简单,网站只要建立个对应的文件,安全性也较高。这种方式有点像蜘蛛爬虫,更像google gears中的静态文件本地缓存方式。
3、浏览器厂商本身建立庞大的URL数据库,对用户输入有效的URL进行保存,并根据总访问次数进行排序。通过编码定期更新到用户的客户机上(压缩后数据量是很小的)。类似于搜狗输入法基于网络的庞大词库。
上面第三种方法如果被应用下来,对用户来说真是太方便了,几乎不用记全网址了。我相信这样的浏览器谁都喜欢,想不火都难。
1、(new Function).name
FF,Chrome,Safari为anonymous
IE,Opera为undefined
2、(function(){}).name
FF,Chrome,Safari为空
IE,Opera为undefined
3、(function fn(){}).name
FF,Chrome,Safari为fn
IE,Opera为undefined
以上看出创建匿名函数,通过函数构造器和函数直接量的name属性值是不相同的,但我们期望并不是这样。。。