因公需要,搞起了php,它越来越让我觉得反胃. 代码里到处都是if empty if empty
if(!empty($CFG->aaaa)){}
搜索一下$CFG->aaaa从未出现过,当场吐血,然后多吐了几次就不吐了.
另外,到处都是以下形式的代码,反胃
if(){}else{
if(){
}else{ }
} 最让我郁闷的是
$a = NULL;
$a->a = 'bbb'; 这样尽然没错,NULL是没有意义的,完全就可以不使用stdClass了 弱类型在javascript中演绎得如此优雅,而在php中却如此恶心
从此我爱上了js中的未定义变量异常,至少解释器提示了我. 这种不声明便可以使用的变量给调试,阅读带来了无尽的痛苦.
抱怨归抱怨,血还是要接着吐,请高手指教php编程之道,这样或许能少吐. php的编程模式是否是显示页面与处理页面分离?
还是都同一个页面,使用if else判断? 如果是分离的,如何实现服务器端跳转? 即在一次请求内执行流程经过多个页面,require或include?
if(!empty($CFG->aaaa)){}
搜索一下$CFG->aaaa从未出现过,当场吐血,然后多吐了几次就不吐了.
另外,到处都是以下形式的代码,反胃
if(){}else{
if(){
}else{ }
} 最让我郁闷的是
$a = NULL;
$a->a = 'bbb'; 这样尽然没错,NULL是没有意义的,完全就可以不使用stdClass了 弱类型在javascript中演绎得如此优雅,而在php中却如此恶心
从此我爱上了js中的未定义变量异常,至少解释器提示了我. 这种不声明便可以使用的变量给调试,阅读带来了无尽的痛苦.
抱怨归抱怨,血还是要接着吐,请高手指教php编程之道,这样或许能少吐. php的编程模式是否是显示页面与处理页面分离?
还是都同一个页面,使用if else判断? 如果是分离的,如何实现服务器端跳转? 即在一次请求内执行流程经过多个页面,require或include?
解决方案 »
- 求PHPChina邀请码,有的给个谢谢
- 我想通过ISBN查找Amazon的图书,然后将图书信息保存在自己的数据库
- php调用MYSQL的存储过程问题,急急!
- 求区间输入的界面解决方案
- 急求。eclipse开发环境中,怎么添加一个既存的PHP工程。。。。
- google merchant center提交数据文件,状态显示“未插入任何信息条目 ”
- svn checkedout
- 征集开发amh面板URL重写模块。
- 怎么看一个文件是什么utf-8编码还是gbk?
- 新人配置求助 localhost显示404
- 模板传值
- php执行mysql存储提示:Commands out of sync; you can't run this command now错误
尽管php是弱类型语言,但是,良好的实践告诉我们,使用变量前先初始化是一个良好的习惯,不仅便于阅读,而且可以避免很多莫名其妙的错误。
而且,php开发的优点就是快速,轻便,如果使用强类型,恰恰违反了它的初衷。
php的编程模式是否是显示页面与处理页面分离?
还是都同一个页面,使用if else判断?php有很多优秀的mvc框架
起码,弱类型使用起来便洁,现在我们用OOP模式开发,可以做到将成员属性集中在类中声明,这样便于管理。
再想,一个页面中,变量的个数毕竟是有限的,还不至于让人无法追踪变量的地步。
如果你真不习惯它这种模式,那你可以这样:开启PHP的错误级为所有,然后将变量集中起来初始化,这样就行了。eg:<?php
error_reporting(E_ALL);
$a='a';$b='b';
echo $a;
echo $c; //$c没有初始化,所以会抛出NOTICE级错误提示,便于你规范化代码。
?>
不过,现在MVC可以将表现层与数据处理层分离。
如果你看了moodle的源码 你不会这样说
代码是有灵魂的。对于同种语言,不同水平的程序员会写出不同的代码。如果PHP真不方便,让人恶心,那淘宝绝对不会选PHP来开发。
一般的大门户站,不会全部用一种技术。淘宝也不止用到PHP一种技术。
与强类型没有明显的分界线。
$a->fk = 'fk';null不是null 没有意义
说不好听的,php 这个行当不是人少了,而是人多了!什么样的人都去钻营 php ,搞的 php 程序员只能挣扎在温饱线上
我倒觉得js那鬼东西难搞死了。。调试真尼玛费劲,稍微一出错还要借助工具才能有错误提示(当然ie不需要啦),而且后面都显示不了。还要担心各种浏览器兼容。
试问 : $a 与 $a->fk 是什么关系??
我以前也没注意到:
在PHP中,这样的写法: $obj->val ,如果$obj不是一个实例对象,那么PHP会将 $obj->val 当成一个变量,不信大家试试:<?php
echo $A->val;
?>
运行以上代码,页面不会有任何输出;我们来更改下代码:<?php
error_reporting(E_ALL);
echo $A->val;
?>运行此代码,会报错:“Notice: Undefined variable: A in ....”,“Notice: Trying to get property of non-object in ....”
此处,PHP还是将$A->val 当成类成员属性操作接下来,我们再来修改下代码:<?php
error_reporting(E_ALL);
$A->val='http://www.net920.cn';
echo $A->val;
?>运行此代码,会输出字符串:“http://www.net920.cn”,由此我们可知,PHP将 $A->val尝试当成变量解析了。
而PHP对于 $a->b 这种写法本身是认可的,当然也不会报任何错误。
抱怨归抱怨 知识还是要学 多谢NET920指教了$a=NULL
$a->b = "";
以上代码我本来的理解就是,$a都是NULL了,怎么还可以使用$a呢??换成c++
obj* a = new obj();
a = 0;
a->pro = "ss"; //这里显然是崩溃
只能讲每种语言设计思路不同,各有特点,PHP这种思维的确让人有点想不通。
PHP一直强调变量不需要定义,那你去配置警告级别干什么??$a->b 这种情况,PHP会尝试将它解析为变量的。
还有,不是APACHE警告级别,是PHP警告级别!
————————————————————————————————
基于CSDN论坛提供的插件扩展功能,自己做了个签名档工具,分享给大家,欢迎技术交流 :)
没有类型增加了调试的困难,而到处都是if(empty($a))