Difference between revisions of "Interview Questions"
(→Avoid Mysql Injection) |
(→C/C++) |
||
Line 16: | Line 16: | ||
==Regular Expression == | ==Regular Expression == | ||
http://www.zytrax.com/tech/web/regex.htm | http://www.zytrax.com/tech/web/regex.htm | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
==PHP== | ==PHP== |
Revision as of 23:06, 3 April 2012
Contents
Some Translation
n! Multiplicative
Object-oriented programming
Check here Interview_Questions(OOP)
C++ Interview
Javascript/Jquery
Algorithm Interview Problems
Algorithm Problems
All about Binary search tree
All about Linked List
Heap & Heap Sort
Regular Expression
http://www.zytrax.com/tech/web/regex.htm
PHP
abstract class
Can not be Instantiable.(cannot become instant. Can only be inherited)
abstract class Fruit { private $color; abstract public function eat() public function setColor($c) { $this->color = $c; } }
Difference between Abstract Class and Interface
Abstract Classes
An abstract class can provide some functionality and leave the rest for derived class
The derived class may or may not override the concrete functions defined in base class
The child class extended from an abstract class should logically be related
Interface
An interface cannot contain any functionality. It only contains definitions of the methods
The derived class must provide code for all the methods defined in the interface
Completely different and non-related classes can be logically be grouped together using an interface
Single or Double Quotes?
//Sometimes people use double quotes in PHP to avoid having to use the period to separate code. For example, you could write: $color='red'; echo "I have a $color shirt on today<br/>"; //Faster however is not always better. A better way to write this code would be: echo 'I have a ' .$color. ' shirt on today<br/>'; echo 'I have a $color shirt on today<br/>';
Output:
I have a red shirt on today I have a red shirt on today I have a $color shirt on today
Avoid Mysql Injection
$_POST['username'] = 'aidan'; $_POST['password'] = "' OR ''='"; $query = "SELECT * FROM users WHERE user='{$_POST['username']}' AND password='{$_POST['password']}'"; $passwd=mysql_real_escape_string($_POST['password']); $passwd1=addslashes($_POST['password']); echo $passwd."<br />"; echo $passwd1."<br />"; echo ($query);
Output
\' OR \'\'=\' \' OR \'\'=\' SELECT * FROM users WHERE user='aidan' AND password='' OR ''=''
This would allow anyone to log in without a valid password.
Static method
Declaring class properties or methods as static makes them accessible without needing an instantiation of the class.
<?php class Foo { public static $my_static = 'foo'; public function staticValue() { return self::$my_static; } } class Bar extends Foo { public function fooStatic() { return parent::$my_static; } } print Foo::$my_static . "\n"; $foo = new Foo(); print $foo->staticValue() . "\n"; print $foo->my_static . "\n"; // Undefined "Property" my_static print $foo::$my_static . "\n"; $classname = 'Foo'; print $classname::$my_static . "\n"; // As of PHP 5.3.0 print Bar::$my_static . "\n"; $bar = new Bar(); print $bar->fooStatic() . "\n";
Swap 2 numbers in one line
//swap $a=10; $b=20; $a=$a+$b-($b=$a); echo $a." and ". $b."\n"; // output 20 and 10 $a^=$b^=$a^=$b; //This has a bug. You cannot do things like this $a^=$a^=$a^=$a echo $a." and ". $b; //output 10 and 20
Calculate degree between hour and minute hand
<?php $time=array(); $time['h']=12; $time['m']=15; $time['s']=30; function clockDegree($time){ $mPercent=((float)$time['m']+((float)$time['s']/60.0))/60.0; $mDegree=$mPercent*360; $hdegree=((int)$time['h']%12+(float)$mPercent)/12.0*360; echo abs($mDegree-$hdegree); } clockDegree($time);