php与js的区别是什么
1,类型转换的不同
在javascript中
空对象和空数组转换为boolean值为true;
但在php中
空对象空数组转换为boolean值为false;
(仅在php4中空对象的boolean值为false)
包括非0的负数值,都是转换为true;
2,实形参的不同
在js中形参和实参的个数对比起来都没有限制,形参个数可以大于实参,也可以少于实参
而在php中,实参数大于形参不报错,但当实参个数少于形参个数时(并且未指定的形参未定义时就会报错)
function mao(val1,val2,val3){
}
mao(aa,bb);
此时由于val3未指定实参,会报错
但当val3初始化一个值时,不报错
代码如下:
function mao(val1,val2,val3="123"){
}
mao(aa,bb);
js中可以写一个三元表达式来给未赋值的形参给定一个初始值,不可以和php一样在形参列表里面赋值,
本质原因由于php不存在原型连,执行过程中没有变量对象。
3.数据类型的不同
js中有undefined类型,php中无此类型,
因此当一个变量未赋予任何值时,js中此类型为undefined(使用未申明的变量会报错),而在php中则为Null类型;
并且js中只有number类型,而在php中无此类型,取代的为int float类型;
4.字符串的连接
js中使用加号 + +=
php中使用点号 ..=
5.控制语句的区别
else if与elseif在php中都支持,js只支持前者
6.大小写问题
js严格区分大小写
php中自定义函数名不区分大小写。命名函数时不可使用已声明的函数,或PHP内建的函数名称。
7.变量的作用范围
php在函数范围之外所声明的变量就是全局变量。由于函数可以视为单独的
程序片段,所以局部变量会复盖全局变量的能见度,因此在函数中并无
法直接调用使用全局变量。函数中若要使用全局变量时,必须要利用global关键字定义目标变量,以
告诉函数主体此变量为全局。
js由于原型连的关系,可直接调用
8.静态变量
PHP支持声明函数变量为静态的(static)
js随无静态变量但可以定义函数的属性来冒充静态变量
相关推荐
-
JS与PHP向函数传递可变参数的区别实例代码
# JS 调用函数传递可变参数的方法 复制代码 代码如下: <script> function test() { for(var i = 0;i < arguments.length; i++) { alert(arguments[i]); } } //调用函数 test(1, 2, 3, 'abc'); </script> # PHP 调用函数传递可变参数的方法 复制代码 代码如下: <?php //方法一 //接收一系列参数,并逐一输出 function show_
-
ThinkPHP模版中导入CSS和JS文件的方法
本文实例讲述了ThinkPHP模版中导入CSS和JS文件的方法.分享给大家供大家参考.具体方法如下: 常用方法 1. css使用link 2. js使用src 用tp自己的导入标签import 导入Public文件夹下面的Js目录中的test.js文件,import标签可以省略type属性,默认就是js的文件 复制代码 代码如下: <import type='js' file='Js.test'> <import type='css' file='Css.test'> 不在Publ
-
php json_encode值中大括号与花括号区别
1.当array是一个从0开始的连续数组时,json_encode出来的结果是一个由[]括起来的字符串 而当array是不从0开始或者不连续的数组时,json_encode出来的结果是一个由{}括起来的key-value模式的字符串 复制代码 代码如下: $test = array();$test[] = 1;$test[] = 1;$test[] = 1;echo json_encode($test); 结果: [1,1,1] 复制代码 代码如下: $test = array();$test[
-
Thinkphp搭建包括JS多语言的多语言项目实现方法
本文实例讲述了Thinkphp搭建包括JS多语言的多语言项目实现方法.分享给大家供大家参考.具体实现方法如下: 一.问题: 项目需要开发英文版,于是需要搭建多语言项目. 项目使用Thinkphp框架,隐约记得Thinkphp有多语言设置,翻看了帮助手册,果然有,这就边实验边开始: 二.实现方法: Thinkphp采用app_begain来检测和切换语言包,语言包和项目相关,构架等都比较简单,具体的这里:http://www.thinkphp.cn/info/188.html 搭建好了,就可以使用
-
ASP.NET、ASP、PHP、JSP之间有什么区别?
Asp: 首先说Asp,它是属于脚本语言,一般连接的数据库为 Access 和 MsSql(SqlServer).当我们开发一个一般的小型数据库网站的时候,一般在3万条记录以下的,一般用Access数据库. Access数据库的优势就是一般的服务器都支持. SqlServer数据库的优势就是速度快,比如当记录集在10万以上,可以推荐用Sql的数据库. 这两种数据库在Asp中都是用Sql语法,但Access数据库和SqlServer数据库的使用语法有一定的不同. 在制
-
js+php实现静态页面实时调用用户登陆状态的方法
本文实例讲述了js+php实现静态页面实时调用用户登陆状态的方法.分享给大家供大家参考.具体分析如下: 在程序开发中,经常会把页面做成html的静态形式,这样可以减轻服务器负载,但是也存在一个问题就是当注册用户登陆时,要在html页面显示登陆成功或需要登陆的提示,这样我们就必须想其它办法来实现了,下面我们就是利用js+php来实例的,当然还有ajax也可以实现,代码如下: 复制代码 代码如下: <!doctype html public "-//w3c//dtd xhtml 1.0 tra
-
php,js,css字符串截取的办法集锦
可能没什么含量,求少拍砖. 首先是PHP版本的. 复制代码 代码如下: <?php echo mb_strimwidth("这里是内容", 0,3,"...","utf-8"); ?> 其实只用mb_strimwidth一个函数就可以了,该函数的说明如下: mb_strimwidth - 获取按指定宽度截断的字符串 string mb_strimwidth ( string $str , int $start , int $width
-
php实现压缩多个CSS与JS文件的方法
本文实例讲述了php实现压缩多个CSS与JS文件的方法.分享给大家供大家参考.具体实现方法如下: 1. 压缩css 复制代码 代码如下: <?php header('Content-type: text/css'); ob_start("compress"); function compress($buffer) { /* remove comments */ $buffer = preg_replace('!/\*[^*]*\*+(
-
js函数与php函数的区别实例浅析
本文实例分析了js函数与php函数的区别.分享给大家供大家参考.具体分析如下: 在PHP语法中,函数就是语法上的结构体,不是一个变量,不能被赋值: 在JS中,函数也是一种变量,变量名就是函数名. 复制代码 代码如下: <html> <head> </head> <body> <script type="text/javascript"> function t(){ return 5; } var m = t;//函数名即是变
-
php与js的区别是什么
1,类型转换的不同 在javascript中 空对象和空数组转换为boolean值为true: 但在php中 空对象空数组转换为boolean值为false: (仅在php4中空对象的boolean值为false) 包括非0的负数值,都是转换为true: 2,实形参的不同 在js中形参和实参的个数对比起来都没有限制,形参个数可以大于实参,也可以少于实参 而在php中,实参数大于形参不报错,但当实参个数少于形参个数时(并且未指定的形参未定义时就会报错) 复制代码 代码如下: function ma
-
Node.js基础入门之缓存区与文件操作详解
目录 缓存区 1. 什么是缓存区? 2. 创建指定长度的缓存区 3. 通过数组创建缓存区 4. 通过字符串创建缓存区 5. 读写缓存区 6. 复制缓存区 文件操作 1. 异步直接读取 2. 同步直接读取 3. 流式读取 4. 写入文件 5. 流式写入文件 6. 读取文件信息 7. 删除文件 8. 管道 9. 链式流 经过前面三天的学习,Node.js的基础知识已逐渐掌握,今天继续学习缓存区和文件操作,并稍加整理加以分享,如有不足之处,还请指正. 缓存区 1. 什么是缓存区? JavaScript
-
Javascript让DEDECMS告别手写Tag
1. 打开\dede\templets\album_add.htm文件, 在顶部head中的js script区增加js方法. function setag(){ var tagg=window.showModalDialog("tags_main.php","tag","dialogWidth=800px;dialogHeight=600px"); if(typeof(tagg) != 'undefined') document.form1.t
-
探讨fckeditor在Php中的配置详解
前言: FCKeidtor是个国外的多语言编辑器,你可以对其配置文件进行简单修改使之支持目前常用Web开发语言的应用,下面我就讲讲FCKeditor的最新版本2.4.2在php的具体配置过程,有不足和出错的地方,欢迎指正. 精简: 正因为这个编辑器是支持多语言的,所以首先我们针对使用对其做相应的冗余文件删除. 1.临时文件及文件夹删除:从根目录下开始删除一切以"_"开头的文件及文件夹,因为他们为临时文件和文件夹.删除这类临时文件及文件夹之后,我们还要删除一些根目录下的多余文件,根目录下
-
详解webpack多页面配置记录
之前也写过webpack学习记录,项目中需要一个常用的webpack多页面配置,所以才动手,本着能写一行是一行的原则,开始了配置webpack之旅. 定目录结构 首先我只需要开发环境(包含自动更新)和打包环境,初定的目录结构是这样的 app主要写业务代码,config里写webpack配置和一些打包.开发的配置,经过一番计较,最后根据自己习惯,目录结构如下: app -libs # 第三方插件库,可以是css也可以是js,eg:jq -static # 公共的静态资源文件夹 -temlates
-
如何通俗的解释TypeScript 泛型
概述 在 TypeScript 中我们会使用泛型来对函数的相关类型进行约束.这里的函数,同时包含 class 的构造函数,因此,一个类的声明部分,也可以使用泛型.那么,究竟什么是泛型?如果通俗的理解泛型呢? 什么是泛型 泛型(Generics)是指在定义函数.接口或类的时候,不预先指定具体的类型,而在使用的时候再指定类型的一种特性. 通俗的解释,泛型是类型系统中的"参数",主要作用是为了类型的重用.从上面定义可以看出,它只会用在函数.接口和类中.它和js程序中的函数参数是两个层面的事物
-
two.js之实现动画效果示例
一.什么是two.js? Two.js 是面向现代 Web 浏览器的一个二维绘图 API.Two.js 可以用于多个场合:SVG,Canvas 和 WebGL,旨在使平面形状和动画的创建更方便,更简洁. Two.js 有一个内置的动画循环,可搭配其他动画库.Two.js 包含可伸缩矢量图形解释器,这意味着开发人员和设计人员都可以在商业应用中,如 Adobe Illustrator 中创建 SVG 元素,并把它引入 Two.js 使用场景中. 二.导入two.js 三.用two.js实现动画 1)
-
Vue.js常用指令汇总(v-if、v-for等)
有时候指令太多会造成记错.记混的问题,所以本文在记忆的时候会采用穿插记忆的方式,交叉比对,不易出错. 本文主要讲了一下六个指令: v-if//v-show//v-else//v-for//v-bind//v-on 1. v-if 条件渲染指令,根据其后表达式的bool值进行判断是否渲染该元素: eg: HTML: <div id="example01"> <p v-if="male">Male</p> <p v-if=&qu
-
node.js的exports、module.exports与ES6的export、export default深入详解
前言 最近难得有空,决定开始重新规范的学习一下node编程.但是引入模块我看到用 require的方式,再联想到咱们的ES6各种export .export default. 阿西吧,头都大了.... 头大完了,那我们坐下先理理他们的使用范围. require: node 和 es6 都支持的引入 export / import : 只有es6 支持的导出引入 module.exports / exports: 只有 node 支持的导出 这一刻起,我觉得是时候要把它们之间的关系都给捋清楚了,不
-
使用Angular.js实现简单的购物车功能
先给大家分享实现代码,在代码下面有效果图展示,大家可以两者结合参考下,废话不多说了,具体代码如下所示: <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> <script src="http://code.angularjs.org/1.2.5/angular.min.js"></script
随机推荐
- C#中常用的分页存储过程小结
- js通过八个点 拖动改变div大小的实现方法
- ThinkPHP 3.2.2实现事务操作的方法
- php foreach循环中使用引用的问题
- PHP网页游戏学习之Xnova(ogame)源码解读(十五)
- Bootstrap源码解读标签、徽章、缩略图和警示框(8)
- java使用gzip实现文件解压缩示例
- Web压力测试工具:http_load、webbench、ab、Siege使用方法
- 中国民间传统节日中英文对照表一览表
- Linux中僵尸进程和孤儿进程详解
- JS异步加载的三种实现方式
- js输出数据精确到小数点后n位代码
- Android 单线程模型详解及实例
- 基于Android扫描sd卡与系统文件的介绍
- 关于Java三大特性之多态的总结
- js canvas实现画图、滤镜效果
- C语言+shell实现linux网卡状态检测
- 关于laravel 数据库迁移中integer类型是无法指定长度的问题
- springboot中事务管理@Transactional的注意事项与使用场景
- python/sympy求解矩阵方程的方法