php和js区别
php和js区别
两者在语法上类似,楼上说的对,js=javascript是工作在浏览器端的脚本语言,他所提交的数据是交给浏览器来处理的。但是现在的Ajax技术已经可以把js提交的数据交付到浏览器来处理。
php,是工作在服务器端的脚本,把数据提交给服务器去处理,服务器再响应到浏览器,这个你要看下BS结构。如果学习建议:很多人先学的js,道理是没错,但是如果先学PHP的话,js就是带着需求来学习的,学的会更加有针对性。
嵌入页面方式
JS嵌入方式:<script></script>
PHP嵌入方式:<?php
?>(常用)
输出语法
Javascript输出
1.alert("警告的内容")
2.prompt("提示的内容")
3.document.write()(页面输出内容)
PHP输出
1.echo(常用)//可同时输出多个字符串 eg:echo $a,"hello";
2.print //只能输出一个字符串 eg:print $a;
3.print_r();//可以打印数组
4.var_dump();//可输出变量的内容、类型和长度
数据类型
JS数据类型
整型(整数)int
单精度小数 float
双精度小数 double
小数 decimal
布尔型 bool(只能存两个状态)
日期时间类型 datetime
字符 char(不常用)强
字符串 string(不常用)强
PHP数据类型
bool 布尔型(存储两种状态)
int 整型
float(double) 浮点型
char 字符
string 字符串
定义变量
JS定义变量:var a = 10;
(注意:1.如果定义整数或小数的变量,等号后面的值直接写
2.如果定义字符串变量,等号后面的值需要加双引号或单引号)
PHP定义变量: $a = 5; $a = "hello"; $a = <<<A 定义的字符串内容 //也可放HTML代码 A;
(注意:1.如果定义整数或小数的变量,等号后面的值直接写
2.如果定义字符串变量,等号后面的值需要加双引号或单引号)
字符串拼接
JS中字符串拼接:"+"; eg:"hello"+"world"
PHP中字符串拼接:"."; eg:"hello"."world"
PHP特有的变量特征
// 转义字符:一般用在字符串里面,用来输出特殊的内容
// \" 输出双引号 \t 制表符 \n 换行
eg:$s = "wo\"rld"; //转义加引号 $s = "wo\trld"; //转义制表 $s = "wo\nrld"; //转义换行
$a = "你好";
//解析变量
$b = "hello{$a}"; //输出hello,你好
类型转换
JS中类型转换
1.转化为整数:parseInt();
2. 转化为小数:parseFloat();
3.判断是否为合法数字类型:isNaN();
PHP中类型转换
1.$a = (Int)$a; //强制转化变量a为整数
2.$b = settype($b,"string"); //强制转化变量a为字符串
PHP中关于变量的常用函数
$s = 5;
1.var_dump(empty($s)); //empty($s)判断变量s是否为空,可以为0,可以为空字符串,也可以是未定义
2.unset($s); //删除变量s
3.var_dump(isset($s)); //isset($s)判断变量s是否定义
PHP中的特殊用法
1.变量取地址
$a = "hello";
$b = &$a; //&代表取变量的地址
echo($b); //输出结果为hello
2.可变变量
$s = "hi";
$hi = "你好";
echo $$s; //输出的是 你好
适合的工具做适合的事。
- 切豆腐是用【电锯】好还是【菜刀】好?
- 砍树是用【电锯】好还是【菜刀】好?
用上牛逼的工具不等于人就变得牛逼了。
- 拿一把好菜刀也变不成大厨。
- 坐到驾驶舱也变不成飞行员。
什么领域都有天花板。
- 菜做得再好也只能是【厨师】
- 树砍得再好也只能是【伐木工】。
浏览器是JS的主场,但服务器不是JS的主场.服务器不像浏览器只能跑JS. JS在服务器的运行环境(Node)跟浏览器差别很大. 在服务器Node应用是以一个独立的守护进程运行, 代码稍有不慎就可能导致进程崩溃退出, 而且修改代码需要重启Node进程才能生效(那些自动化工具nodemon/pm2本质也是重启服务). 服务器的PHP跟浏览器反而更像,都是提供一个比较稳定的容器来执行脚本. 所以一个PHP虚拟主机环境可以稳定运行多个PHP站点.你很难写出让PHP容器(如PHP-FPM和Apache)发生崩溃的PHP代码. 浏览器也会尽量避免因为网站JS的问题导致的崩溃. 比如浏览器Chrome/Firefox跟PHP-FPM用的都是多进程架构. 子进程崩溃并不会影响主进程,主进程可以重新启动一个子进程提供服务.
看看已经逝去的ASP,连Java开发者都不爱的JSP,寂寥落寞的RoR,以及一直自嗨的Python Web,你就会知道,现在动不动鼓吹全栈的Node迟早也是这其中的一员.
Google不喜欢JS,想推自己的Dart,但没成功.Microsoft不喜欢JS,想推自己的TypeScript.Facebook也不太满意JS,所以React搞了自己的JSX.可见在浏览器端JS也不是谁都满意,更别说好事者把V8移植到服务器的Node方案了.
要说哪个语言曾经严重威胁过PHP的市场,我会说那个语言是ASP,不过还好,微软为了对付JavaEE,放弃了ASP,搞了类Java Web的ASP.NET,加上ASP无法跨平台且不开源,自然也就在与PHP的竞争中落败.
唱衰PHP的声音一直都有,但草根英雄PHP从来都用质朴的实力来教对手做人.因为PHP贯彻的是实用主义和群众路线思想, 所以没有豪门支持的PHP照样能在互联网上雄霸一方.
PHP的成功在于坚定不移地走群众路线. 量变(用户量/代码量)引起质变. 用户量体现在互联网上有超过82%的网站使用PHP驱动.代码量体现在PHP自带的各种功能扩展以及使用PHP开发的各种博客/论坛/商城系统.
只有比PHP更PHP的语言才有可能取代PHP. "更"体现在比PHP更简单,更实用,更高效,学习/开发/运维成本更低. 我很乐于见到这么一门语言出来,但很显然,现在还没有.
补充:
谁说有V8 JIT支持的Node性能就一定比PHP强?生成一个包含100万个元素的关联数组,PHP7耗时0.9秒,而Node耗时1.5秒,环境是Ubuntu 14.04,处理器是i5-3230M,有图有真相.连Facebook的HHVM都不能干翻PHP7,你就知道鸟哥到底有多强.
&lt;img src="https://pic2.zhimg.com/50/v2-94ba8b3e3c46076ee1175a203a5a9623_hd.jpg" data-rawwidth="450" data-rawheight="620" class="origin_image zh-lightbox-thumb" width="450" data-original="https://pic2.zhimg.com/v2-94ba8b3e3c46076ee1175a203a5a9623_r.jpg"&gt;
因为我用的是PHP 7.0.0版本来测试,所以PHP显示出来的性能优势没有孙子平这位网友使用PHP 7.1.4来的明显.在孙子平这位网友的测试中,PHP7耗时仅为Node.JS7的1/3.
https://pic2.zhimg.com/v2-668a4ac0dfe2216230ac4da903adc155_b.png
附上跟Java7的对比,没想到Java还没Node快,怎么跟PHP比?
&lt;img src="https://pic1.zhimg.com/50/v2-249483425f7743a745a910e5a6fadd2a_hd.jpg" data-rawwidth="1096" data-rawheight="470" class="origin_image zh-lightbox-thumb" width="1096" data-original="https://pic1.zhimg.com/v2-249483425f7743a745a910e5a6fadd2a_r.jpg"&gt;
php和js区别的更多相关文章
- jquery与js区别
js与jquery的区别 js里面找元素是通过dom操作,jquery是通过$ DOM:土鳖jQuery:土豪1. DOM-->jQuery(土鳖变土豪)拿钱砸:$Var txtName = d ...
- JS区别不同浏览器(微信、手机等)
最近一直在忙于自己公司的旅游产品,设计方面太广并且要兼容各种设备和场景,包括PC.Mobile.Pad.还有各种支付.由于微信支付和支付宝存在竞争,所以需要区别不同的浏览器,并且WEB项目还要出现在A ...
- LodopFuncs.js和CLodopFuncs.js区别和联系
所在位置:LodopFuncs.js可以在官网下载中心综合版里下载到.CLodopfuncs.js在C-Lodop服务缓存中,C-Lodop启动的时候才能访问到. 需不需要下载放置到项目里:(客户端本 ...
- Vue.js和angular.js区别
Vue.js:易学 简单 指令以v.xxx 一片HTML代码配合json,在new出来Vue,js实例 个人维护项目 适用于移动端 应用超越了angular angular.js:上手难 指令以ng. ...
- vue-learning:20 - js - 区别:filters / data / computed / watch / methods
区别:filters / data / computed / watch / methods 在配置对象options中,filters/data/computed/watch/methods的每一项 ...
- jq与js 区别
$(this).html(666); <div id="a">123</div> <script> $("#a").clic ...
- js区别手机和电脑打开网页
Navigator对象 首先来了解一下Navigator 对象,Navigator 对象包含有关浏览器的信息,下面的userAgent 属性是一个只读的字符串,声明了浏览器用于 HTTP 请求的用户代 ...
- js区别对象和数组的三种方法
var arr = {}||[]; 区分arr是数组还是对象 1.arr.constructor ...
- JQuery 和JavaScript的区别
Google提供的jquery包: http://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js jQuery官方的jquery包: ...
随机推荐
- Word技巧杂记(一)——去掉页眉上方的黑线
今天在调整文章的格式时,突然发现在页眉的上方有一条巨粗无比的黑线,不知从何处冒出来的(如下图) 经过长时间的研究,终于发现原来这是页面的边框.解决办法也很简单: 格式->边框与底纹->页面 ...
- c:forTokens标签delims截取字符
转自:https://blog.csdn.net/love398146779/article/details/83853958 两个name要相同,在里边内容为空的时候才会全显示. <logic ...
- C++ MAP使用
1. map的构造函数map<int,string> maphai;map<char,int> maphai;map<string,char> mapstring; ...
- SQL Server 查询所有包含某文本的存储过程、视图、函数
• 方法一:查询所有包含某文本的存储过程.视图.函数 SELECT * from sysobjects o, syscomments s where o.id = s.id AND text LIK ...
- Centos7 minimal 系列之Redis(五)
一.Redis安装 1.1 .进入/usr/local 创建redis文件夹(mkdir)方便统一管理 1.2.下载redis $ wget http://download.redis.io/rele ...
- Android 网络状态变化的监听
1.在流量网页,时实现断网,提醒等功能. 需要权限 <uses-permission android:name="android.permission.INTERNET"/& ...
- deploy springboot to tomcat
1 在 Eclipse 中建立新的web项目[ABC],之后 转成Maven项目. 2 创建 class Application 3 修改POM 4 修改web.xml 5 exp ...
- 去除input 在 webkit内核浏览器 选择历史时,有一个黄色背景
input:-webkit-autofill { -webkit-box-shadow: 0 0 0px 1000px white inset; } http://www.imooc.com/arti ...
- node——读取文件中的路径问题
前提 当前的js文件叫_dirnameandfilename.js和hello.txt同在G:\node练习文件夹下 还有一个_dirnameandfilename.js文件在i:/文件夹,但是i:/ ...
- php 与 nginx 的两种处理方式
1.IP:Port 监听方式 php-fpm docker pull PHP:2.4-alpine nginx.conf fastcgi_pass 127.0.0.1:9000; php-fpm 在容 ...