Mar 8, 2007

what is more important for a PHP beginner?

once i was a newbie in learing PHP, the funniest things are planning to write some CMS system,some forum programms.now all these seem so ridiculous.How can you fly without wings?so now the answer is that, for those who are really interested in this language,they'd better to learn the basic functions and types,trying to read through the manual ... then read some beautiful and normative code sample , follow sophisticated programmers' guide ... then learn and learn , NEW INTERMEDIATE LEVEL PHP PROGRAMMERs COME OUT!
I will try to do this now!

Mar 7, 2007

PHP Manual, where conceptions and detailed info locate.

there are so many detailed info in the manual,which i almost ignored before. for example, where caculate the member number of an array, we use COUNT( ) or SIZEOF() ;
In the manual, this is described as below:

count

(PHP 3, PHP 4, PHP 5)count -- Count elements in an array, or properties in an object

Descriptionint count ( mixed var [, int mode] )
Returns the number of elements in var, which is typically an
array, since anything else will have one element.
For objects, if you have
SPL installed, you can hook into count() by implementing interface Countable. The interface has exactly one method, count(), which returns the return value for the count() function.
If var is not an array or an object with implemented Countable interface, 1 will be returned. There is one exception, if var is NULL, 0 will be returned.


Note: The optional mode parameter is available as of PHP 4.2.0.
If the optional mode parameter is set to COUNT_RECURSIVE (or 1), count() will recursively count the array. This is particularly useful for counting all the elements of a multidimensional array. The default value for mode is 0. count() does not detect infinite recursion.


SO , COUNT("123") will return int 1.
but in the gameloft test, i choose 'false' ,ft! there is still a long way for me to go...

Mar 6, 2007

PHP written test for Gameloft, NewPostofNewSemester,

More than 30 days passed since last update.
Recently I am learning and preparing some foundational knowledge for programming, something like OOP,data structure and C/C#/Java language etc.


Gameloft PHP test,most of the questions are very basic conceptions and functions,involving PHP array operations,mysql query, and session tricks. for me the most difficult one maybe the bubble arithmetic for number sort.so let's mark it here.

function bubble_sort($array)
{
$count = count($array);
if ($count <= 0) return false; for($i=0; $i<$count; $i++)
{
for($j=$count-1; $j>$i; $j--)
{
if ($array[$j] < $array[$j-1])
{
$tmp = $array[$j];
$array[$j] = $array[$j-1];
$array[$j-1] = $tmp;
}
}
}
return $array;
}

Gameloft is known for the cell phone games.so WAP is also involved in this test. for this part , i did nothing.

Feb 2, 2007

PHP学习笔记:PHP&Java文档注释

原文地址:http://www.cublog.cn/u/27731/showart.php?id=212274

写文档是一项乏味却不得不做的工作,而编写API级的文档更是意味着大量的重复劳动和难以保持的一致性。
使用文档注释的PHP或JAVA文件经过工具可以产生 列出类、方法、参数、和程序员所需要了解的其他信息,还可以自动处理各个class之间的关系,并据此生成class tree。
该类工具典型的有:phpDocumentor、javadoc。

要点:
1.文档注释必须要加在声明之前才有意义,其他位置的文档注释将会被忽略。
2.文档注释应该加在下秒几种描述的前面:
》类
》接口
》方法
》域
3.文档注释的第一行是方法/类等的简要描述,这是文档注释的一种规则。
4.要解析文档注释,生成文档的工具会查看“/**”之后以及“*/”之间的部分,其中每个“*”都代表了一行的开始。除了第一行,工具会忽略所有加在“*”之前的空格或制表符,其后的部分会生成html文档的一部分。
5.文档注释应该以一个项目的概述作为起始部分。
6.可以在注释中加入HTML标记。应该找出哪些标记在文本注释中可以正常使用。一般说来,改变字体的标记是没有问题的,但改变文本结构的标记则不能在文档注释中使用。
7.所有javadoc/phpdoc标记都是一@作为开始字符,没个标记都必须开始于一个新行。

标记

@author 作者 默认忽略
@version 版本 默认忽略
@param 参数
@return 返回
@see 查看相关 @see 包.类名@see 包.类名#域名@see 包.类名#方法名(参数列表) php为 参考函数
{@link 名称标记} 内联超文本链接 {@link #link to} => to
@since 源自 源自≈php4php5.1 说明当前代码从哪个版本开始可用
@deprecate 反对 用于描述那些只在早期版本中可用的包、类或方法,而目前由于他人还在使用,因此不能删除这些,这些在将来不可用。或 不建议使用的API
@var 类成员变量
@static 静态变量
@global 全局变量
@const 由define定义的常量

@public
@private
@protected

@serial 域描述
@serialField 域名 域类型 域描述
@serialData 数据描述
@abstract to declare a method, class variable, or class that must be re-defined in a child class to be valid.
@access
@copyright
@example
@final
@filesource
@ignore
@license
@name
@internal
@staticvar
@subpackage
@package
@todo
@tutorial
@uses
详情看http://manual.phpdoc.org

Feb 1, 2007

PHPer 学习规律

前阵子在网上看到一个关于PHP学习规律的帖子,有同感,所以摘在这儿来提醒自己。
原文地址是 http://axgle.com/?p=34

心理学中,把学习中出现的进步暂时停顿的现象,称作学习的“高原现象”,即学习成绩的曲线保持在一定水平,不再上升,甚至有些下降。
PHPer周期律是指:高原现象在学习PHP的过程中的周期性发作的现象。这个是我实际体会到的。
有段时间,我感觉PHP该学的都差不多了,似乎没什么新东西可以学的了。但是过了一段时间,我发现了某个与php有关的新东西让我感兴趣,然后心想:原来php还可以这样!于是一时间进步不少。
渐渐的,高原现象又来了:“我感觉PHP该学的都差不多了,似乎没什么新东西可以学了”。可是过了一段时间后,我又遇到了新的PHP的东西让我感兴趣,结果知识水平又大大进步了。
奇妙的是,这样的事情反复出现。于是我自然给予了一个总结:这就叫做“PHPer周期律”。
PHPer周期律是指一个始终对php感兴趣的人,在学习过程中遇到的“我已到山顶,感觉没有目标”的现象的反复而周期性的出现极其不断突破的规律。
PHPer周期律提醒我,我现在虽然自以为已到山顶,但过一段时间必然会发现更高的山让我去征服。同时它似乎也是对你自己PHP水平的一个客观量度:回忆一下你自己从学习PHP以来出现的周期有几次,你就能够知道自己的php大体是什么水平了。
最差的是一次周期也没有,这是那些没有学php的人或者初学php的人。而学习了一段php的人,渐渐的对php基础有所了解了,就有可能出现第一次周期:“啊,我似乎什么都学会了。但感觉似乎还不够,不知道怎么继续进步呢”能够这么想的phper,必然会遇到第二次周期。恭喜并且祝福他!
而这里倒霉的必然是第一次周期发生的时候,就不再期望继续进步的PHPer.我认识一个学习php的人,他对学习php热情非常高,过了几个月后,他自己写了个简单的论坛,于是感觉似乎什么都会了。又过了一段时间,他丢下php,转投C#的怀抱了。当我继续在php的道路上一路飞奔的时候,他忽然停下来对我说:“啊,老弟,我感觉还是php好啊,看来现在得叫你师傅了。”
是的,我学习php已经经过了很多次的周期,也就是已经有多次感觉“已到山顶”了。所以我完全有理由说我比那些周期次数少的人水平高—至少在知识水平极经验层次上是如此。
而我所以写下此文,也是因为此刻的我,再次感觉到“已到山顶”了.我相信过一段时间后,我将继续在PHP之路上一路飞奔,不断前进。
最后,愿PHPer周期律,与大家共勉!

Mysql charset problems.

I had a problem yesterday in transferring some old information to the new database system. The default charset for the old system is 'latin1' , while in the new system it is set to 'utf8'. after I used simple sql query
"INSERT INTO some_tbla (x1,x2) SELECT x11,x21 FROM some_tblb"
all multiple bytes characters in the target table became "?????".

这显然是字符编码的问题。原来的latin1或者其他编码的字符需要转换成utf8的。

Using 'ICONV' extension of PHP will be helpful ,something like this:
$str_converted = iconv('gbk','utf8',$str_need_convertion).
then,insert the converted strings into the new table ,everything goes well!