PHP网页编程之PHP句律例则详解
大家如果能懂得“熟能生巧”的道理也就明白了这并不是浪费时间,同时这也可以减轻板主的负担,让他们有时间去处理更难的问题。 1.复杂句律例则(用花括号界定变量名,合用于PHP一切版本):$a = 'flower';
echo "She received some $as";
// 有效;字母s会被当做无效的变量名构成元素,然而这里的变量是$a
echo "She received some ${a}s"; // 无效
echo "She received some {$a}s"; // 无效;保举的利用办法
咱们但愿表达的是”她收到一些花“,语境中的flower应当采取单数模式(也就是说应当在前面加上S),然而假如不合错误变量做任何界定的话,就会呈现第一个echo的情形。明显咱们但愿输入的是$a而不是$as。那末咱们凡是是怎样来处置这个输入的呢?
echo "She received some $a"."s";
echo "She received some ".$a."s";
// 这两种习气性的写法应当没有加花括号的写法简约了然吧?
注重:不论{是呈现在$后面仍是前面,只要二者紧挨着时花括号才会被当做是界定符号。不要在之间加空格,要否则就会被看成通俗的花括号处置
echo "She received some { $a}s";
// 输入的了局为:She received some { flower}s
2.庞杂句律例则(用花括号界定表达式等,利用与PHP4+):
echo "无效的写法: {$arr}";
// 无效;界定多维数组
echo "无效的写法: {$arr['foo']}";
// 无效;当在字符串中利用多维数组时,必定要用括号将它括起来
echo "无效的写法: {$this->width}00";
// 无效;假如不界定的话,就会酿成 $this->width00
echo "无效的写法: {$this->value->name}";
// 无效;该例演示了界定链式挪用
echo "无效的写法: $name: {${$name}}";
// 无效;该例演示的后果实践上是一个可变变量
echo "无效的写法: {${getName()}}";
// 无效;该例演示了将函数的前往值作为变量名
echo "无效的下发: {${$this->getName()}}";
// 无效;该例演示了将函数的前往值作为变量名
注重1:echo "如许写无效吗: {getName()}";输入了局为:'如许写无效吗:
{getName()}'。由于外面不含$,所以花括号不会被看成界定符
注重2:echo "如许写无效吗:{$arr}"; 在回覆这个成绩前咱们先来停止一个实行:
error_reporting(E_ALL);
$arr = array('a', 'b', 'c', 'd'=>'e');
echo "This is $arr";
// 咱们发明如许写是没有成绩的,那末咱们像上面如许写呢?
echo $arr;
发生了如许的毛病:
Notice: Use of undefined constant d - assumed 'd'
注重:采取了不决义的常量d,能够应当为'd'
那末假如咱们像上面如许修正一下代码的话
error_reporting(E_ALL);
$arr = array('a', 'b', 'c', 'd'=>'e');
define('f', 'd');
echo $arr;
咱们发明此次没有成绩了。可以看出在字符串中数组的索引不加单引号是没有成绩的,然而假如这类写法不是呈现在字符串傍边就会报错,而关于字符串中{$arr}的解析就是依照非字符串的体例解析的。所以说在字符串傍边对数组只加花括号界定而不合错误索引加单引号的写法是毛病的。由于法式会把不加单引号的索引看成是常量来停止解析,这就发生了毛病。准确的写法应当是:
echo "无效的写法: {$arr['foo']}";
出格提示一点:echo "This is $arr";这类写法固然可以被法式解析,但这也仅限于数组是一维数组的情形。严谨的写法应当是:echo "This is {$arr['d']}";我的先生已经在这一点上和我争辩过,他说:既然后面一种写法能出了局,为何必定要用前面一种写法呢?那末,咱们再持续修正一下后面的代码
error_reporting(E_ALL);
$arr = array('a', 'b', 'c',
'd'=>array('e'=>'f')
);
echo "This is $arr";
如许还可以被准确解析吗?我只想告知你,加花括号是严谨的需要的。固然,假如你不是我的先生那末我管不了那末多......
注重3:
error_reporting(E_ALL);
$arr = array('a', 'b', 'c', 'd');
echo "This is {$arr}
";
echo "This is {$arr['2']}
";
履行下面的代码。了局是一样的,为何会如许呢?我只能告知你PHP是弱类型言语,至于甚么叫弱类型言语我就不在这里多说了。本人去Google一下吧。说了这么多,那末最能表现这些句律例则优势的详细使用在甚么中央呢?----SQL语句
// 示例一:
$SQL1 = "select * from table where id={$_GET['id']}";
// 示例二:
$SQL2 = "select * from table where id={$this->id}";
《PHP+MYSQL WEB开发(第三版)》号称圣经级,(也许是个不错的选择(声明:作者没给我啥好处费,我也不是书托,隔着大老远,我连他老兄的面都没见过的说-_-) 遇到出错的时候,我经常把错误信息直接复制到 google的搜索栏,一般情况都是能搜到结果的,不过有时候会搜出来一大片英文的出来,这时候就得过滤一下,吧中文的弄出来,挨着式方法。 曾经犯过一个很低级的错误,我在文件命名的时候用了一个横线\\\\\\\'-\\\\\\\' 号,结果找了好几个小时的错误,事实是命名的时候 是不能用横线 \\\\\\\'-\\\\\\\' 的,应该用的是下划线\\\\\\\'_\\\\\\\' ; 学好程序语言,多些才是王道,写两个小时代码的作用绝对超过看一天书,这个我是深有体会(顺便还能练打字速度)。 对于懒惰的朋友,我推荐php的集成环境xampp或者是wamp。这两个软件安装方便,使用简单。但是我还是强烈建议自己动手搭建开发环境。 首先声明:我是一个菜鸟,是一个初学者。学习了一段php后总是感觉自己没有提高,无奈。经过反思我认为我学习过程中存在很多问题,我改变了学习方法后自我感觉有了明显的进步。 php里的数组为空的时候是不能拿来遍历的;(这个有点低级啊,不过我刚被这个边界问题墨迹了好长一会) 基础有没有对学习php没有太大区别,关键是兴趣。 兴趣是最好的老师,百度是最好的词典。 Apache不是非得用80或者8080端口的,我刚开始安得时候就是80端口老占用,就用了个 81端口,结果照常,就是输localhost的时候,应该输入为 localhost:81 最后介绍一个代码出错,但是老找不到错误方法,就是 go to wc (囧),出去换换气没准回来就找到错误啦。 不禁又想起那些说php是草根语言的人,为什么认得差距这么大呢。 兴趣是最好的老师,百度是最好的词典。 最后祝愿,php会给你带来快乐的同时 你也会给他带来快乐。 因为blog这样的可以让你接触更多要学的知识,可以接触用到类,模板,js ,ajax 如果你可以写完像留言板这样的程序,那么你可以去一些别人的代码了, 兴趣是最好的老师,百度是最好的词典。 爱上php,他也会爱上你。 其实也不算什么什么心得,在各位大侠算是小巫见大巫了吧,望大家不要见笑,若其中有错误的地方请各位大虾斧正。 我还是强烈建议自己搭建php环境。因为在搭建的过程中你会遇到一些问题,通过搜索或是看php手册解决问题后,你会更加深刻的理解它们的工作原理,了解到php配置文件中的一些选项设置。
页:
[1]